罗斯莫比尔

rosmobilelib的Python项目详细描述


罗斯莫比尔

使用开源机器人中间件ROS来构建移动机器人动作。这个库使得能够在ROS网络和工作区外部运行Python3代码。在

这是依赖的roslibpy,它允许ROS编程,而不用使用rospy定义为ROS节点。在

主要特点

  • 管理功能,以设置ROS机器人运动简单。在
  • 动态计划到目标,发送/等待行动。在
  • 提供一些用于ROS编程的特性,例如TF的坐标变换。在
  • 支持同步到单个回叫,以满足订阅多主题的需要,如立体摄像系统。在

安装

要安装rosmobilelib,请使用pip

pip install rosmobilelib

或者

^{pr2}$

文件

细节很快就到了。现在,你要小心点,挺过去。在

示例实现:

导入库。在

import roslibpy as rlp
from rosmobilelib import MobileClient

准备与roslibpy的连接。如果您需要详细信息,请参阅here。在

client = rlp.Ros('localhost', port=9090)
lm1 = lambda: print('is ROS connected: ', client.is_connected)
client.on_ready(lm1)
client.run()

定义MobileClient对象并等待订阅needs主题。在

lm2 = lambda r: print('reached goal', r)
ms = MobileClient(client, lm2, odom_topic='/odom', map_topic='/map')
ms.wait_for_ready()

使用动态FCFS调度程序。设定目标并使之能够执行目标。不仅可以在call start()之后随时设置目标。在

详细信息:

  • start(),stop():使调度队列可执行/不可执行
ms.start()

# set scheduler a goal that go ahead 0.5 from robot body
ms.set_goal_relative_xy(0.5, 0, is_dynamic=False)

# set relative pos(x:front:-0.5, y:left:1) based basis vector that decided dynamic after previous executed
ms.set_goal_relative_xy(-0.5, 1, is_dynamic=True)

# set goal directly with world frame's pose
ms.set_goal(ms.get_vec_q(-0.4,-0.6,0), ms.get_rot_q(0,0,math.pi/2))

time.sleep(60)

ms.stop()

还有其他方法等待时间直到达到目标。将time.sleep(n)换成{}。在

...
ms.wait_for_execute_all()
...

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener