1、ROS的工作空间设置搭建
mkdir -p ~/test_catkin_ws/src
//-p,在创建目录的时候父目录不存在则一并创建;~,用户目录
cd ~/test_catkin_ws/src
catkin_init_workspace
//初始化工作空间
cd ~/test_catkin_ws
catkin_make
//catkin_make命令行工具简化了catkin的标准工作流程,可以认为catkin_make是在CMake标准工作流程中依次调用了cmake和make
完成环境变量配置。
source devel/setup.bash
//实际上只是重新加载了setup.bash文件,开启新终端后找不到这个工作空间中的功能包
可以将上面的命令行添加到~/.bashrc文件里,这样每次打开新终端就会加载命令行并配置环境:
echo "source test_catkin_ws/devel/setup.bash" >> ~/.bashrc
或者
sudo gedit ~/.bashrc
在文件末尾加上
source test_catkin_ws/devel/setup.bash
2、创建ros功能包
$ cd ~/catkin_ws/src
现在使用catkin_create_pkg命令来创建一个名为’hello ’的新程序包,这个程序包依赖于std_msgs、roscpp和rospy:
$ catkin_create_pkg hello std_msgs rospy roscpp
Created file beginner_tutorials/package.xml
Created file beginner_tutorials/CMakeLists.txt
Created folder beginner_tutorials/include/beginner_tutorials
Created folder beginner_tutorials/src
Successfully created files in /home/yongqiang/catkin_ws/src/beginner_tutorials. Please adjust the values in package.xml.
3、功能包的编译
这里使用catkin_make工具,此时注意必须在工作空间目录下运行该命令工具。
cd ~/test_catkin_ws/
catkin_make
上面的编译方式是编译工作空间下所有的功能包,如果只编译其中指定的功能包,格式如下:
catkin_make -DCATKIN_WHITELIST_PACKAGES="mypackage1"
source devel/setup.bash
catkin_make -DCATKIN_WHITELIST_PACKAGES="mypackage2"
source devel/setup.bash
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
注:这一步执行命令的目录也是工作空间目录下,最后一行执行命令指恢复编译所有的包,即下次我们修改功能包内容之后依然可以重新编译我们要指定编译的包。
到此,在ROS上我们实际已经实现了相应的功能,只要运行节点(即执行相应的进程)就能实现相应的操作。例如,我们编译完了一个导航功能包,运行该导航功能包里的某个功能节点,则相应的实现了某些导航操作。
————————————————
原文链接:https://blog.csdn.net/jimson_zhu/article/details/81226978
。
。
。
。
执行
rospack list | grep hello
会显示
wxh@wxhumi:~$ rospack list | grep hello
hello /home/wxh/htest_catkin_ws/src/hello
说明功能包hello已经加入了。