创建ros源码包前先创建一个工作空间,使用ubuntu的命令mkdir创建一个目录:每一个工作空间tmp_ws中都有一个src目录
mkdir -p tmp_ws/src
然后,切换到创建的ros的工作空间中去
cd tmp_ws/src
通过catkin_create_pkg方式创建包:catkin_create_pkg + 包名字(自己定义) + 依赖项(用python语言:rospy) + 通信消息(控制小乌龟运动)
catkin_create_pkg test00_turtle rospy geometry_msgs
?可以在Home中看一下刚创建的工作空间
?虽然创建了rospackage,但里面什么也没有,可以通过如下命令修改一下bashrc
gedit .bashrc
运行进入bashrc,在bashrc中加入一行,让系统找到ros的工作目录:
source ~/tmp_ws/devel/setup.bash
根据自己创建的工作空间名(我这里是tmp_ws)进行添加,如下
改后记得右上角保存"Save"
此时还没有编译我们的工作空间,所以tmp_ws中只有src文件
进入工作空间tmp_ws,编译一下:
cd tmp_ws/
catkin_make能把所有的源码和工作空间编译一下
在编译的过程中,tmp_ws中生成了两个文件:build 、devel
下面通过写一个节点看一下程序是如何运行的
输入roscore,所有的其他节点都要向roscore做注册、汇报
roscore
开一个新界面,接下来运行一个经典的turtlesim的例子?
1、安装turtlesim的软件包
sudo apt install ros-noetic-turtlesim
其他的包也能通过这种方式安装,ros+版本号+包名
2、启动软件包中的节点
通过rosrun命令启动软件包中的节点(一个小乌龟):rosrun+包名+所调用的包内函数名
rosrun turtlesim turtlesim_node
3、通过rostopic list详细了解小乌龟
rostopic list
可通过rostopic info +小乌龟属性名(如rostopic info /turtle1/pose)看一下小乌龟的详细属性数据
最后,写一段代码程序实现控制小乌龟的运动
1、切换到软件包中
cd tmp_ws/src/test00_turtle/scripts/
通过touch命令创建一个test00.py的文件,可通过vim或记事本编写代码程序,这里我使用vim
2、进入编写代码程序
import rospy
from geometry_msgs.msg import Twist
rospy.init_node('test_turtle')
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=1)
cmd = Twist()
cmd.linear.y = 0.1
#cmd.angular.z = 0.5
while not rospy.is_shutdown():
pub.publish(cmd)
rospy.sleep(0.1)
3、保存并退出
先按esc键,然后键入冒号:(会在左下角显示),最后在冒号后面输入wq(意思是保存并退出),按回车键即可
4、运行程序
如果输入python运行报错,如下
可以试试输入python3
可以发现小乌龟沿着y轴运动
也可以通过rosrun运行,但它要求test00.py有可执行权限