学习rosbridde
自己用ros的python库做了一个小工具
大概就是这个样子,太丑了,哈哈哈
生成了可执行文件和源码我上传了,链接在这https://download.csdn.net/download/weixin_36628778/11646508
1.需要的环境
- 装有ros的电脑,至于怎么装,可以查看roswiki链接http://wiki.ros.org/kinetic/Installation/Ubuntu 也可以用这个脚本,一键安装,只支持16.04和14.04现在https://download.csdn.net/download/weixin_36628778/11646963
- 安装rosbridge,命令
sudo apt-get install -y ros-kinetic-rosbridge-server
- 启动roscore 命令
roscore
- 启动rosbridge 命令
roslaunch rosbridge_server rosbridge_websocket.launch
- 跨平台的python库。roslibpy,可以通过pycharm安装,或者用pip 命令
pip install roslibpy
- roslibpy的依赖 安装的时候提示缺啥,装啥就行
启动的样子
2.roslibpy 库例子
具体文档链接在这里:https://roslibpy.readthedocs.io/en/latest/examples.html#
这个是可以下载的pdf地址https://download.csdn.net/download/weixin_36628778/11644867
2.1连接ros
import roslibpy
client = roslibpy.Ros(host='localhost', port=9090)
client.run()
print('Is ROS connected?', client.is_connected)
client.terminate()
2.2 publish topic
import time
import roslibpy
client = roslibpy.Ros(host='localhost', port=9090)
client.run()
talker = roslibpy.Topic(client, '/chatter', 'std_msgs/String')
while client.is_connected:
talker.publish(roslibpy.Message({'data': 'Hello World!'}))
print('Sending message...')
time.sleep(1)
talker.unadvertise()
client.terminate()
2.3 subscribe topic
from __future__ import print_function
import roslibpy
client = roslibpy.Ros(host='localhost', port=9090)
client.run()
listener = roslibpy.Topic(client, '/chatter', 'std_msgs/String')
listener.subscribe(lambda message: print('Heard talking: ' + message['data']))
try:
while True:
pass
except KeyboardInterrupt:
client.terminate()
主要的见https://github.com/jinmenglei/rosbridgeUI_python_wxpython.git