ros入门使用

ros初始化

新建 Vt 目录,初始化Vt目录,然后在Vt目录下新建包,可以参考一下命令

进入工作空间,建立简单的可用于catkin_make编译的catkin包

1
2
3
4
5
$ cd ~/catkin_ws
$ mkdir ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_w
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

编译包:

1
2
$ cd ~/catkin_ws
$ catkin_make

在Vt 目录下,当新建一个包时候,要重新catkin_make一下 Vt文件夹。

ros建包

先是 (我目录的反斜杠可能写错 别在意)

1
cd VtClass/src

然后

1
catkin_create_pkg VtImg2txt cv_bridge image_transport roscpp rospy std_msgs

第2个参数是包的名字

后面的参数是包的依赖(有可能有多余的包依赖 不过没关系啦~),若之后要添加包依赖,要更改 package.xml,CMakeList 文件

因为我们用的是Python代码

然后我们继续

1
cd VtImg2txt

里面有这样些文件

img

(除了scripts文件夹)

然后我们就要建立scripts文件夹

1
mkdir scripts

把VtImg2txt.py放进去这个文件夹里

然后还要改一下权限

1
2
cd scripts
chmod +x VtImg2txt.py

另外把VtController.py覆盖一下(在VtClass/src/VtController/scripts里面)

在py文件中添加:

1
#!/usr/bin/python

运行ros

rosrun + 包名 + 节点名

roslaunch + 包名+ 节点名

roscore 开启ros核

注意,开启ros程序有几种方法:

  1. 先运行roscore,然后运行所有的rosrun
  2. 将所有要开启的rosrun添加到launch文件中,直接执行roslaunch
  3. 先开启roslaunch,再开启rosrun

两台电脑Ros通信

在我看来,ROS最牛逼的地方就是它的通信机制了,不仅仅是进程间通信方便,就连不同设备间通信也很方便,只需添加几行代码,你就可以实现多电脑间的 Topi c共享, 远程控制等功能。下面就让我们一起来实现吧!

这里假设我们有两个电脑:电脑 A 为主机端,电脑 B 为控制端。最终要实现在 A 电脑上运行roscore,并且运行 Turtlesim 程序,然后在 B 电脑上运行键盘控制程序,控制 Turtlesim 小乌龟移动。

查看电脑A和电脑B的 IP 和 Hostname

查看IP,在控制台输入:

1
$ ifconfig

如果电脑连接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;

如果电脑连接的是无线,则 wlp3s0 部分的 inet addr 后就是 IP 地址

查看 Hostname,在控制台输入:

1
$ hostname

修改hosts文件内容

使用如下指令,分别在电脑A和电脑B的打开 hosts 文件:

1
$ sudo gedit /etc/hosts

电脑A端的 hosts文件 中添加如下指令:

1
2
3
4
5
6
7
127.0.0.1       localhost
127.0.1.1 [ hostname_A ]

[IP_A] [ hostname_A ]
[IP_B] [ hostname_B ]

***

同理,在电脑B端的 hosts 文件中,加入如下指令:

1
2
3
4
5
6
7
127.0.0.1       localhost
127.0.1.1 [ hostname_B ]

[IP_B] [ hostname_B ]
[IP_A] [ hostname_A ]

***

修改 .bashrc 文件

使用如下指令,分别在电脑A和电脑B的打开 .bashrc 文件

1
$ sudo gedit ~/.bashrc

电脑A端电脑B端打开的 .bashrc 文件的最后一行,加入如下代码:

1
export ROS_MASTER_URI=http://[hostname_A]:11311

[注意] 此处假设电脑A为主机,如果改成电脑B为主机,则只需要将此步中的 [hostname_A] 改成 [hostname_B] 即可。

运行小乌龟程序

电脑A端:

1
2
3
首先启动 ROS:$ roscore
然后 Ctrl + T 打开新的控制台,运行:
$ rosrun turtlesim turtlesim_node

电脑B端:

1
$ rosrun turtlesim turtle_teleop_key

现在,你就可以用电脑 B 控制电脑 A 中的小乌龟尽情遨游啦! ~(≧▽≦)/~啦啦啦

------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道