Skip to content

01. Introduction


Robot Operating System (ROS) introduction


The definition of robot

  • Joseph Engelberger, pioneer in industrial robotics: "I can't define a robot, but I know one when I see one."
  • Wikipedia: "A robot is a machine—especially one programmable by a computer— capable of carrying out a complex series of actions automatically. Robots can be guided by an external control device or the control may be embedded within. Robots may be constructed on the lines of human form, but most robots are machines designed to perform a task with no regard to their aesthetics."
  • ISO 8373:2012 Robots and robotic devices – Vocabulary, FDIS 2012: "A robot is an actuated mechanism programmable in two or more axes with a degree of autonomy, moving within its environment, to perform intended tasks."
  • Rodney Brooks, Founder and CTO, Rethink Robotics: "A robot is some sort of device, wich has sensors those sensors the world, does some sort of computation, decides on an action, and then does that action based on the sensory input, which makes some change out in the world, outside its body. Comment: the part "make some change outside its body" discriminates a washing machine from e.g. a Roomba."
  • Tamás Haidegger, Encyclopedia of Robotics: "A robot is a complex mechatronic system enabled with electronics, sensors, actuators and software, executing tasks with a certain degree of autonomy. It may be pre-programmed, teleoperated or carrying out computations to make decisions."

What is ROS?

  • Open-source, robotics themed middleware
  • Modularity, reusability (drivers, algorithms, libraries, ...)
  • Hardware abstraction, ROS API
  • C++ és Python support
  • Ubuntu Linux (except ROS 2)
  • Great community


History

  • Mid 2000s, Stanford: robotics themed, flexible, dynamic framework for prototype development
  • 2007, Willow Garage: incubation, the core of ROS under BSD license
  • Spread in robotics reserach, PR2
  • 2012: Industrial robotics, ROS-Industrial
  • 2017: ROS 2

Development system build -- homework


Recommended environment:

  • Ubuntu 22.04
  • ROS2 Humble
  • IDE: QtCreator

ROS 2 Humble Hawksbill

Setup locale.

```bash
locale  # check for UTF-8

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale  # verify settings
```

---
  1. ROS 2 Humble install

    sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install curl -y
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    sudo apt update
    sudo apt upgrade
    sudo apt install ros-humble-desktop
    sudo apt install ros-dev-tools
    

  2. Test the new ROS 2 install:

    source /opt/ros/humble/setup.bash
    ros2 run demo_nodes_py talker
    

  3. The source command is responsible for setting the environment variables, which must be specified each time a new terminal window is opened. This command can be inserted at the end of the ~/.bashrc file, which is run every time a terminal window is opened, so you don't have to type it every time (ROS 2 will be the default):

    echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
    

További csomagok

  1. We will also need the following packages during the semester, so these should be installed as well:

    sudo apt install libxml2-dev libraw1394-dev libncurses5-dev qtcreator swig sox espeak cmake-curses-gui cmake-qt-gui git subversion gfortran libcppunit-dev libqt5xmlpatterns5-dev python3-osrf-pycommon libasound2-dev libgl1-mesa-dev xorg-dev python3-vcstool python3-colcon-common-extensions python3-pykdl python3-pyudev libxml2-dev libraw1394-dev libncurses5-dev qtcreator swig sox espeak cmake-curses-gui cmake-qt-gui git subversion gfortran libcppunit-dev libqt5xmlpatterns5-dev libbluetooth-dev ros-humble-joint-state-publisher* ros-humble-xacro gfortran-9
    

IDE

  1. QtCreator

    Currently, one of the most widely used IDEs for developing ROS packages is QtCreator, for which a ROS plugin has been developed. The installer is available at the link below. You should use the "18.04 offline installer", it also works on Ubuntu 22.04.

    https://ros-qtc-plugin.readthedocs.io/en/latest/_source/How-to-Install-Users.html

    Once downloaded, the IDE can be installed using the command below (it is important to put cd in the download location):

    chmod +x qtcreator-ros-bionic-latest-offline-installer.run
    sudo ./qtcreator-ros-bionic-latest-offline-installer.run
    

    When the installer asks you where to install it, change it to e.g. /home/<USER>/QtCreator. If you put it in root, you will not be able to run it. After installation, look for `Qt Creator (4.9.2)'.


  2. CLion

    CLion has a high level of ROS integration, and its use is most recommended for this course. A free student license can be obtained at https://www.jetbrains.com/community/education/#students

    After installation, browse to the file /var/lib/snapd/desktop/applications/clion_clion.desktop. Copy the appropriate line here so that the IDE will use the environment set by the terminal:

    Exec=bash -i -c "/snap/bin/clion" %f
    

  3. Visual Studio

    Microsoft Visual Studio also supports source code for ROS, this IDE can also be used during the semester.


Suggestion

Install Terminator terminal emulator:

sudo apt update
sudo apt install terminator


  • https://www.ros.org/
  • ROS 2 Humble installation
  • QtCreator + ROS plugin
  • IROB virtual tour

深圳SEO优化公司巢湖百度标王公司横岗百度网站优化排名推荐新余百搜标王价格厦门优化价格威海网站优化按天收费价格上海百度seo报价黔西南外贸网站建设哪家好达州SEO按天收费报价海东百姓网标王推广公司永湖关键词排名多少钱观澜至尊标王公司潜江SEO按天计费衡阳网站建设报价南阳网站优化排名公司普洱建网站公司泰州百度网站优化排名报价白城百姓网标王推广价格钦州营销型网站建设价格丹竹头SEO按效果付费哪家好济南关键词按天扣费报价张掖seo网站推广德州网站推广方案公司杭州关键词排名包年推广价格盘锦百度seo哪家好长葛百度标王推荐横岗seo网站优化报价扬州seo网站优化济源SEO按效果付费公司西宁网站优化按天扣费价格张北seo优化哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化