ros 参数服务器 消息发布和订阅 机器人避障

来源:互联网 发布:json文件的注释 编辑:程序博客网 时间:2024/05/22 04:36

Ros编写消息发布器和订阅器(python)

         定义两个rospy节点,“talker”节点通过topic “chatter”发布消息,“listen”节点用来接收消息

编写发布器

1.   进入包beginner_tutorials

roscd beginner_tutorials

2.   建立Python脚本目录

mkdir scripts

cd scripts

3.   编写talker.py文件,权限要加上可执行

touch talker.py

chmod +x talker.py

vim talker.py (或 rosed beginner_tutorials talker.py)

4. 编译代码

cd ~/catkin_ws

catkin_make

5. 测试代码

启动roscore

启动talker.py  rosrun beginner_tutorials talker.py

6. 查看主题

rostopic echo/chatter

编写订阅器

1.步骤与编写订阅器相似,进入~/catkin_ws/src/beginner_tutorials/scripts目录,创建listener.py文件,注意修改可执行权限

 

2.编写代码

3.编译代码

cd  ~/catkin_ws

catkin_make

4.测试代码

       首先运行roscore,若roscore已经运行,不需要再开一个,

       运行 listener.py

rosrun beginner_tutorials listener.py

【注】在运行listener.py的时候,要运行talker.py不然接收不到消息

5.使用rqt_graph查看调用关系

制作Launch文件

       用roslaunch 运行launch文件,可以同时运行多个结点,而不需要另开终端一个rosrun运行节点

1.   在beginner_tutorials目录下新建bringup目录

roscd beginner_tutorials

mkdir –p bringup

2.   进入bringup,新建talker-and-listener.launch

cd bringup

rosed beginner_tutorials  talker-and-listener.launch

3.在launch文件里输入代码

3.   运行launch

roslaunch beginner_tutorialstalker-and-listener.launch

4.查看节点关系

 

使用参数服务器

参数类型有整数、浮点数、字符串、布尔值、列表、字典等。

操作参数

1.   获取参数,使用rospy.get_param(param_name)

【注】rospy.get_param(‘/param_name’) #获取全局参数

rospy.get_param(‘param_name’)#获取当前命令空间的参数

rospy.get_param(‘~param_name’)#使用私有空间命名参数

rospy.get_param(‘param_name’,’default_value’)#获取参数,如果没有,使用默认值

2设置参数,使用rospy.set_param(param_name,para_value)

3.删除参数,使用rospy.delete_param(‘param_name’)

4.判断参数是否存在,使用rospy.has_param(‘param_name’)

制作launch文件

通过lanunch设置参数,进入bringup目录,新建param_talker.launch

roscd beginner_tutorials/bringup/

touch param_talker.launch

rosed beginner_tutorials param_talker.launch

制作结点

使用参数,进入scripts目录,新建param_talker.py

roscdbeginner_tutorials/scripts/

touchparam_talker.py

rosedbeginner_tutorials param_talker.py

sudo chmod +xparam_talker.py

 

启动launch文件

roslaunch beginner_tutorials param_talker.launch

 

机器人避障

1 首先向机器人底层发送参数命令‘p’,得到超声波测距的值:

              输入:p\r

              输出:110 110  110  110\r

       【备注】单位:cm 前面三个超声波,后面一个超声波。输出的值的顺序是:前面左边,前面中间,前面右边,后面中间

在驱动结点中添加代码,即发送命令’p’:

2 将这四个值设置成为参数:

3.创建一个新的结点,通过一个话题进行通信,接收参数服务器上产生的值,调整机器人的运动状态,然后将调整运动状态的消息发布到话题上将消息发布出去。

 

 

 

 

Ros编写消息发布器和订阅器(python)

         定义两个rospy节点,“talker”节点通过topic “chatter”发布消息,“listen”节点用来接收消息

编写发布器

1.   进入包beginner_tutorials

roscd beginner_tutorials

2.   建立Python脚本目录

mkdir scripts

cd scripts

3.   编写talker.py文件,权限要加上可执行

touch talker.py

chmod +x talker.py

vim talker.py (或 rosed beginner_tutorials talker.py)

4. 编译代码

cd ~/catkin_ws

catkin_make

5. 测试代码

启动roscore

启动talker.py  rosrun beginner_tutorials talker.py

6. 查看主题

rostopic echo/chatter

编写订阅器

1.步骤与编写订阅器相似,进入~/catkin_ws/src/beginner_tutorials/scripts目录,创建listener.py文件,注意修改可执行权限

 

2.编写代码

3.编译代码

cd  ~/catkin_ws

catkin_make

4.测试代码

       首先运行roscore,若roscore已经运行,不需要再开一个,

       运行 listener.py

rosrun beginner_tutorials listener.py

【注】在运行listener.py的时候,要运行talker.py不然接收不到消息

5.使用rqt_graph查看调用关系

制作Launch文件

       用roslaunch 运行launch文件,可以同时运行多个结点,而不需要另开终端一个rosrun运行节点

1.   在beginner_tutorials目录下新建bringup目录

roscd beginner_tutorials

mkdir –p bringup

2.   进入bringup,新建talker-and-listener.launch

cd bringup

rosed beginner_tutorials  talker-and-listener.launch

3.在launch文件里输入代码

3.   运行launch

roslaunch beginner_tutorialstalker-and-listener.launch

4.查看节点关系

 

使用参数服务器

参数类型有整数、浮点数、字符串、布尔值、列表、字典等。

操作参数

1.   获取参数,使用rospy.get_param(param_name)

【注】rospy.get_param(‘/param_name’) #获取全局参数

rospy.get_param(‘param_name’)#获取当前命令空间的参数

rospy.get_param(‘~param_name’)#使用私有空间命名参数

rospy.get_param(‘param_name’,’default_value’)#获取参数,如果没有,使用默认值

2设置参数,使用rospy.set_param(param_name,para_value)

3.删除参数,使用rospy.delete_param(‘param_name’)

4.判断参数是否存在,使用rospy.has_param(‘param_name’)

制作launch文件

通过lanunch设置参数,进入bringup目录,新建param_talker.launch

roscd beginner_tutorials/bringup/

touch param_talker.launch

rosed beginner_tutorials param_talker.launch

制作结点

使用参数,进入scripts目录,新建param_talker.py

roscdbeginner_tutorials/scripts/

touchparam_talker.py

rosedbeginner_tutorials param_talker.py

sudo chmod +xparam_talker.py

 

启动launch文件

roslaunch beginner_tutorials param_talker.launch

 

机器人避障

1 首先向机器人底层发送参数命令‘p’,得到超声波测距的值:

              输入:p\r

              输出:110 110  110  110\r

       【备注】单位:cm 前面三个超声波,后面一个超声波。输出的值的顺序是:前面左边,前面中间,前面右边,后面中间

在驱动结点中添加代码,即发送命令’p’:

2 将这四个值设置成为参数:

3.创建一个新的结点,通过一个话题进行通信,接收参数服务器上产生的值,调整机器人的运动状态,然后将调整运动状态的消息发布到话题上将消息发布出去。

 备注:实现代码在本地

 

 

0 0