小乌龟启动过程中,我们启动了两个可执行的程序: turtlesim_node 和 turtle_teleop_key 。可以通过命令查看当前的启动的节点:
可以查看到启动程序对应的节点 /turtlesim 和 /teleop_turtle
通过命令可以查看 /turtlesim 节点的详情
命令运行后,可以看到以下结果:
rosnode info 命令可以查看当前节点的一些信息:
同理,我们也可以通过 rosnode info 查询 /teleop_turtle 节点的信息,结果如下:
现在我们大致可以搞清楚一些通讯的关系:
rqt_graph 工具提供了可视化的工具方便我们查看这种节点间的关系:
1
图像显示, /teleop_turtle 通过主题 /turtle1/cmd_vel 给 /turtlesim 进行数据传递
启动 rqt_publisher 工具
通过图形化配置参数:
我们通过rostopic命令可哪纤大以获得小乌龟的竖唯移动数据类型为 geometry_msgs/Twist
通过rosmsg命令可以查看数据的详细格式:
输出的格式为:
geometry_msgs/Vector3 linear 指的是线速度,小乌龟只李竖用到了 float64 x ,代表着乌龟向前进的线速度
geometry_msgs/Vector3 angular 指的是角速度,小乌龟只用到了 float64 z ,代表着乌龟旋转的角速度
1、首先是要先在ros系统中盯判,选择modelsounds.cache配置文件重建目录。2、其次通过系统自带的小软件生成小乌龟菜单配置文件州嫌,或用第三方册则手软件生成。
3、最后点击添加,选择“ICC配置文件”下的GBIEC61966,调整为默认即可。
在我看来,ROS最牛逼的地方就是它的通信机制了,不仅仅是进程间通信方便,就连不同设备间通信也很方便,只需添加几行代码,你就可以实现多电脑间的 Topi c共享, 远程控制等功能。下面就让我们一起来实现吧!这里假设我们有两个电脑:电脑 A 为主机端,电脑 B 为控制端。最终要实现在 A 电脑上运行roscore,并且运行 Turtlesim 程序,然后在 B 电脑上运行键盘控制程序,控制 Turtlesim 小乌龟移动。
1. 查看电巧裤脑A和电脑B的 IP 和 Hostname
查看IP,在控制台输入:
$ ifconfig
如果电脑连接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;
如果电脑连接的是无线,则 wlp3s0 部分的 inet addr 后就是 IP 地址。
查看 Hostname,在控制台输入:
$ hostname
2. 修改hosts文件内容
使用如下指令,分别在电脑A和电脑B的打开 hosts 文件:
$ sudo gedit /etc/hosts
在电脑A端的 hosts文件 中添加如下加粗指令:
复孝斗简制代码
127.0.0.1 localhost
127.0.1.1 [ hostname_A ]
[IP_A][ hostname_A ]
[IP_B][ hostname_B ]
***
复制代码
同理,在电脑B端的 hosts 文件中,加入如下加粗指令:
复制代码
127.0.0.1 localhost
127.0.1.1 [ hostname_B ]
[IP_B][ hostname_B ]
[IP_A][ hostname_A ]
***
复制代码
3. 修改 .bashrc 文件
使用如下指令,分别在电脑A和电脑B的打开 .bashrc 文件销岩
$ sudo gedit ~/.bashrc
在电脑A端和电脑B端打开的 .bashrc 文件的最后一行,加入如下代码:
export ROS_MASTER_URI=http://[hostname_A]:11311
[注意] 此处假设电脑A为主机,如果改成电脑B为主机,则只需要将此步中的 [hostname_A] 改成 [hostname_B] 即可。
4. 运行小乌龟程序
电脑A端:
首先启动 ROS:
$ roscore
然后 Ctrl + T 打开新的控制台,运行:
$ rosrun turtlesim turtlesim_node
电脑B端:
$ rosrun turtlesim turtle_teleop_key
现在,你就可以用电脑 B 控制电脑 A 中的小乌龟尽情遨游啦! ~\(≧▽≦)/~啦啦啦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)