本文主要部分来源于ROS官网的Tutorials.

Ubuntu install of ROS Kinetic

# Setup your sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# Set up your keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
# Installation
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full # Desktop-Full Install: (Recommended)
# Initialize rosdep
sudo rosdep init
rosdep update
# Environment setup, so ROS environment variables are automatically added to your bash session every time a new shell is launched
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# Install this tool and other dependencies for building ROS packages
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

Configuring Your ROS Environment

#  check to ensure that environment variables like ROS_ROOT and ROS_PACKAGE_PATH are set
printenv | grep ROS
source /opt/ros/kinetic/setup.bash # if no ROS variable are set, run this command # Create a ROS Workspace (use the recommended catkin)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

# source your new setup.*sh file when a new shell is launched
echo 'source /home/youruser/catkin_ws/devel/setup.bash' >> ~/.bashrc
source ~/.bashrc
echo $ROS_PACKAGE_PATH # you will see /home/youruser/catkin_ws/src:/opt/ros/kinetic/share

Navigating the ROS Filesystem

sudo apt-get install ros-kinetic-ros-tutorials
rospack find roscpp # rospack find [package_name], returns the path to package roscd roscpp
pwd # You can see that YOUR_INSTALL_PATH/share/roscpp is the same path that rospack find gave in the previous example echo $ROS_PACKAGE_PATH # ROS_PACKAGE_PATH should contain a list of directories where you have ROS packages separated by colons roscd roscpp/cmake # roscd can also move to a subdirectory of a package or stack
pwd roscd log # take you to the folder where ROS stores log files
# Note that if you have not run any ROS programs yet, this will yield an error saying that it does not yet exist. rosls roscpp_tutorials # rosls is part of the rosbash suite. It allows you to ls directly in a package by name rather than by absolute path. # Tab Completion
roscd roscpp_tut<<< now push the TAB key >>>

Creating a ROS Package

cd ~/catkin_ws/src
# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp # create a new package called 'beginner_tutorials' which depends on std_msgs, roscpp, and rospy # build the packages in the catkin workspace
cd ~/catkin_ws
catkin_make
# To add the workspace to your ROS environment you need to source the generated setup file
. ~/catkin_ws/devel/setup.bash rospack depends1 beginner_tutorials # First-order dependencies roscd beginner_tutorials
cat package.xml # These dependencies for a package are stored in the package.xml file rospack depends beginner_tutorials # Indirect dependencies, rospack can recursively determine all nested dependencies

Building a ROS Package

cd ~/catkin_ws/
ls src
catkin_make # build all catkin projects found in the src folder.
catkin_make install # (optionally)
ls

Understanding ROS Nodes

sudo apt-get install ros-kinetic-ros-tutorials # install a lightweight simulator
roscore # the first thing you should run when using ROS
rosnode list # lists active nodes
rosnode info /rosout # display information about a specific node

# in a new terminal:
rosrun turtlesim turtlesim_node # You will see the turtlesim window

# in a new termina
rosnode list # lists active nodes
rosrun turtlesim turtlesim_node __name:=my_turtle # change the node's name to my_turtle
rosnode list # lists active nodes
rosnode ping my_turtle # test that it's up

Review

  • Nodes: A node uses ROS to communicate with other nodes. A node really isn't much more than an executable file within a ROS package.
  • Messages: ROS data type used when subscribing or publishing to a topic.
  • Topics: Nodes can publish messages to a topic as well as subscribe to a topic to receive messages.
  • Master: Name service for ROS (i.e. helps nodes find each other)
  • rosout: ROS equivalent of stdout/stderr
  • roscore: Master + rosout + parameter server (parameter server will be introduced later)

You may have noticed a pattern with the naming of the ROS tools,This naming pattern holds for many of the ROS tools.

  • rospack = ros + pack(age)
  • roscd = ros + cd
  • rosls = ros + ls
  • roscore = ros+core : master (provides name service for ROS) + rosout (stdout/stderr) + parameter server (parameter server will be introduced later)
  • rosnode = ros+node : ROS tool to get information about a node.
  • rosrun = ros+run : runs a node from a given package.

Learning ROS: Ubuntu16.04下kinetic开发环境安装和初体验 Install + Configure + Navigating(look around) + Creating a Package(catkin_create_pkg) + Building a Package(catkin_make) + Understanding Nodes的更多相关文章

  1. Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】

    本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...

  2. Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

    前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...

  3. Ubuntu16.04搭建LAMP开发环境

    Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...

  4. 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  5. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

  6. ubuntu16.04 Golang语言开发环境搭建

    golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...

  7. Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  8. Ubuntu16.04搭建各种开发环境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm

    搭建Ubuntu下C/C++以及Python的集成开发环境,采用双系统(Win7+Ubuntu)的Ubuntu16.04-LTS系统, 关于双系统的搭建可以参考下面博客(图文十分详细):https:/ ...

  9. Ubuntu 14.04下java开发环境的搭建--1--JDK的安装

    说明:以下内容均是本人个人经验,接触ubuntu系统是从10.04开始,转眼转眼之间已经四年了,经常浏览各种相关论坛,发现从我刚开始基础到现在,论坛上还有很多人在问关于JAVA环境配置的相关问题.所以 ...

随机推荐

  1. 搭建kerberos和NTP服务器以及安全的NFS服务

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建Kerberos和NTP时钟服务的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需 ...

  2. JS 高级程序设计3.5.1一元操作符 递增和递减操作符++ --

    var age =29 ++age; 在这个例子中,前置递增操作符把age的值变成了30.实际上,执行这个前置递增操作符与执行 一下操作的效果相同: var age=29; age =age+1;// ...

  3. Unity3D学习笔记3——Unity Shader的初步使用

    目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. 渲染 ...

  4. SQL SERVER 作业问题(SET 选项的设置不正确: 'QUOTED_IDENTIFIER'。),以及其它定时sql执行方式探索

    在实时曲线测试平台中,需要用到实时测试数据作为依据,评估程序的可靠性.在编写sql server作业时,出现了一些问题,经过研究给予解决,供大家参考. 1.编写脚本如下: declare @i int ...

  5. 一文带你搞定AOP切面

    摘要:AOP在spring中又叫"面向切面编程",是对传统我们面向对象编程的一个补充,主要操作对象就是"切面",可以简单的理解它是贯穿于方法之中,在方法执行前. ...

  6. String,String Builder,String Buffer-源码

    目录 String 源码分析 常用的API isEmpty() length() charAt() substring() equals() equals()与"==" inter ...

  7. 一口气说出 Redis 16 个常见使用场景!

    1.缓存 String类型 例如:热点数据缓存(例如报表.明星出轨),对象缓存.全页缓存.可以提升热点数据的访问数据. 文章首发于:http://ht5n8.cn/LEc6v 2.数据共享分布式 St ...

  8. 关于document.write()方法重绘页面问题

    学习的时候,document.write()被告知是用来将内容写进页面里面,同时也被告知document.write()方法会重绘页面,但是关于什么时候会重绘,什么时候不会重绘页面没有太多解释. 首先 ...

  9. Dubbo系列讲解之服务注册【3万字长文分享】 23/100 发布文章

    服务注册的几个步骤   对于RPC框架的服务注册,一般包含了如下的流程: 加载服务提供者,可能是通过xml配置的,也可能是通过扫描注解的 实例化服务提供者,并以服务接口作为key,实现类作为value ...

  10. Sqli-Labs less26-28a

    less-26 从第26关开始,我的sqli-labs就在docker上运行了,因为windows中阿帕奇对空格的转义有问题 通过源码可以看到有很多过滤,包括空格 or和and. 方法: or可以用| ...