学习古月ROS探索总结(十二)坐标系统遇到的问题以及解决办法

最近在学习ROS,在古月老师的ROS探索总结(十二)坐标系统遇到一些问题,总结如下:

我使用的是ubuntu16.04 + ROS kinect。
我没法像古月博客里那样创建包,会出现一些奇怪问题,rosmake感觉也怪怪的,我还是选择使用catkin_make,具体操作如下:

mkdir -p tutorials/src
cd tutorials
cd src
catkin_create_pkg learning_tf tf rospy roscpp turtlesim
cd ..
catkin_make

博客里说创建/nodes/turtle_tf_broadcaster.py文件,也不知道nodes是个啥,我就在src里创建的,然后把launch也创建了。
py文件不需要编译,把东西都创建好,然后打开一个终端

cd tutorials
source devel/setup.bash
roslaunch learning_tf start_demo.launch

可以看到一只乌龟,到这里是没有什么问题的。
接下来创建了tutorials/src/learning_tf/src/turtle_tf_listener.py文件,修改了launch,但是运行不了,报错信息为:
在这里插入图片描述
就是说没有turtlesim.msg.Velocity这个对象,一脸懵逼,然后我打开一个终端

python
import turtlesim.msg
print(turtlesim.msg)

这样就可以找到这个包的路径,顺着路径查看了一下,发现这个包里没有Velocity,我只看到了Pose和Color两个文件,所以这个Velocity应该是不能用的,可能是版本原因吧,还是说我少安装了什么?
查看了许多博客,找到了这位朋友基于turtlesim的ROS_TF应用案例详解这篇博客写的非常棒,解释了python文件的语句含义,也解决了我的问题,感谢!
具体解决办法:
首先把import turtlesim.msg更换为import geometry_msgs.msg
然后把原代码里turtle_vel的定义改为
turtle_vel = rospy.Publisher(‘turtle2/cmd_vel’, geometry_msgs.msg.Twist, queue_size=1)
最后定义一个twist = geometry_msgs.msg.Twist()
twist.linear.x = linear
twist.angular.z = angular
turtle_vel.publish(twist)
然后就可以实现turtle2跟随turtle1了。
另开一个终端,输入查看节点情况命令
rosrun rqt_graph rqt_graph
在这里插入图片描述
rosrun tf tf_echo /world /turtle1 可以查看乌龟一号的坐标系相对于world的位置
rosrun tf tf_echo /world /turtle2 可以查看乌龟二号的坐标系相对于world的位置
rosrun tf tf_echo /turtle1 /turtle2 可以查看二号相对于一号的位置,代码中(trans,rot) = listener.lookupTransform(’/turtle2’, ‘/turtle1’, rospy.Time(0))就是获取了这个位置然后进行处理。
world坐标系是以左下角作为原点的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值