Learning ROS: Ubuntu16.04下kinetic开发环境安装和初体验 Install + Configure + Navigating(look around) + Creating a Package(catkin_create_pkg) + Building a Package(catkin_make) + Understanding Nodes
本文主要部分来源于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的更多相关文章
- Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】
本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...
- Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装
前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...
- Ubuntu16.04搭建LAMP开发环境
Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...
- 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
- Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...
- ubuntu16.04 Golang语言开发环境搭建
golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...
- Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
- Ubuntu16.04搭建各种开发环境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm
搭建Ubuntu下C/C++以及Python的集成开发环境,采用双系统(Win7+Ubuntu)的Ubuntu16.04-LTS系统, 关于双系统的搭建可以参考下面博客(图文十分详细):https:/ ...
- Ubuntu 14.04下java开发环境的搭建--1--JDK的安装
说明:以下内容均是本人个人经验,接触ubuntu系统是从10.04开始,转眼转眼之间已经四年了,经常浏览各种相关论坛,发现从我刚开始基础到现在,论坛上还有很多人在问关于JAVA环境配置的相关问题.所以 ...
随机推荐
- Guass消元总结
Guass消元 约旦·高斯消元法 求线性方程组 我们用一个\(n*(n+1)\)的矩阵存储线性方程组各项系数和零次项系数. 每一次找到一个未知数系数最大的方程,交换当前行方程和该方程,并将其他行该未知 ...
- 虚拟机安装RHEL8.0.0
在VMware Workstations 15.0.0中安装RHEL8.0.0 使用到的软件和主机基本配置 此处宿主机基本硬件配置:i3-7100U 4核,内存:12G 虚拟化软件:VMware Wo ...
- tomcat默认端口
关于tomcat默认端口为8080: 网页浏览器的默认端口为80.
- 微信小程序对接显示阿里云数据库数据
现实需求 在项目中需求,有时候现场设备发生故障,需要远程的人员知道.除了邮件方式,以微信小程序的方式也很好.今天进行尝试,并制作了一个demo版本. 1.微信小程序申请制作前端 1.1lists文件( ...
- vue 子目录配置,负载均衡 nginx
1. 我使用的是,腾讯云做负载均衡. 负载均衡配置: https://www.xxxx.com/vue 域名指向的服务器地址:10.10.10.10:80/vue 2. nginx 配置: ser ...
- 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件 内容简介:本文介绍 Spring Boot 的配置文件和配置管理,以及介绍了三种读取配置文 ...
- [Ynoi2011]初始化 题解
第一道Ynoi,纪念一下. 众所周知,Ynoi会进行惨无人道的卡常操作,所以我们可以使用暴力去做Ynoi. 于是乎,我们考虑分块+暴力. 对于操作2,不难发现是道裸的分块,可以抄P3372的代码. 对 ...
- Aging Cell两篇连发 | 华中科技大学王建枝团队运用蛋白质组学技术发现具有AD早期诊断价值的血小板生物标志物
阿尔茨海默症 (Alzheimer 's disease,AD) 是一种原发性的中枢神经系统退行性疾病.AD的主要临床症状是缓慢的认知功能减退,包括记忆.逻辑推理能力和语言功能的进行性丟失,最后发展为 ...
- Shell-02-数据类型
shell数据类型 shell常用的数据类型有 字符串.整数型.数组 字符串 字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号 建议使用双引号,因为双 ...
- Python语言系列-07-面向对象2
重构父类__init__方法 #!/usr/bin/env python3 # author:Alnk(李成果) # 需求:Dog类要新增一个实例属性,但是Cat类不需要 class Animal(o ...