
ROS机器人编程
进击的香皂
一个不务正业的机械工程硕士
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ROS笔记十(基于Python、Kinetic):rviz基础——快速配置并渲染点云和摄像机图像数据
前言:rviz(ROS visualization):用于机器人、传感器和算法的通用3D可视化系统。rviz能够绘制多种类型的数据流。特别是三维的数据。在ROS中所有类型的数据都被关联到一个参考坐标系上。1.准备工作:本文以上一个笔记遥控操作turtlebot为例子,准备工作:打开四个终端:一个运行roscore:roscore一个运行键盘驱动:rosrun teleopbot key_publisher.py 一个运行keys_to_teleop_with_rate.py.原创 2020-05-20 16:07:03 · 2509 阅读 · 0 评论 -
ROS笔记九(基于Python、Kinetic):gazebo中通过键盘输入控制turtlebot机器人移动和转向
前言:Twist消息能描述所有的3D运动,在控制差分驱动的平面运动机器人时,只需要使用其中的两个参数:线性速度(前进/后退)和绕竖直轴的角速度。所以只需要简单地发送线速度(米每秒)和角速度(弧度每秒)命令。这里需要两个程序:一个程序用来监听键盘地敲击事件然后通过ROS消息发布出去,另一个订阅这个ROS消息并输出一个Twist消息,从而实现键盘输入控制机器人地自由移动。1.键盘驱动:使用Python的termios和tty库将终端设置成原始模式并捕获键盘敲击事件,然后将事件以std_msgs/st原创 2020-05-19 23:52:53 · 4017 阅读 · 0 评论 -
ROS笔记八(基于Python、Kinetic):gazebo初探——实现turtlebot移动并避开障碍
前言:代码实现在gazebo7仿真环境中turtlebot机器人的随机移动并避开障碍物。1.创建新的工作空间:创建工作空间文件树:$ mkdir -p ~/wanderbot_ws/src$ cd ~/wanderbot_ws/src$ catkin_init_workspace创建一个“wanderbot”程序包:$ cd ~/wanderbot_ws/src$ catkin_create-pkg wanderbot rospy geometry_msgs sensor_ms原创 2020-05-18 17:06:10 · 2443 阅读 · 0 评论 -
ROS笔记七(基于Python、Kinetic):通信机制——动作(action)
前言:动作使用话题实现,其本质上相当于一个规定了一系列话题(目标、结果、反馈等)的组合使用方法的高层协议。相较于服务的同步通信机制,动作机制则是异步的。动作适用于大部分请求/响应式交互场景,尤其是执行过程不能立即完成。catkin_ws工作空间下my_code程序包里的文件目录结构:1.定义一个动作服务器:...原创 2020-05-15 21:13:40 · 1420 阅读 · 0 评论 -
ROS笔记六(基于Python、Kinetic):自定义动作类型
前言:动作使用话题实现,其本质上相当于一个规定了一系列话题(目标、结果、反馈等)的组合使用方法的高层协议。相较于服务的同步通信机制,动作机制则是异步的。动作适用于大部分请求/响应式交互场景,尤其是执行过程不能立即完成。1.创建动作类型的源文件:在my_code包下创建action目录,用于存放动作源文件。下面定义一个满足定时器需求的动作Timer.action:...原创 2020-05-15 19:09:18 · 604 阅读 · 1 评论 -
ROS笔记五(基于Python、Kinetic):通信机制——服务(server)
前言:服务是另一种在节点之间传递数据的方式。服务其实就是同步的跨进程函数调用,让一个节点调用运行在另一个节点中的函数。服务适用于偶尔并且在有限时间里完成的通信情况。1.定义一个服务端:q...原创 2020-05-14 21:53:29 · 747 阅读 · 0 评论 -
ROS笔记四(基于Python、Kinetic):自定义服务类型
前言:同消息定义一样,服务定义只是一个消息类型列表。不同的是服务调用同时具有输入和输出。点击查看自定义消息类型1.创建服务类型的源文件:在my_code报下创建srv目录,用于存放服务源文件。下面定义一个WordCount服务,文件名WordCount.srv:string words---uint32 count"---"表示输入和输出的分割,string作为服务调用的输入,uint32作为服务调用的输出。2.告知构建系统有新服务的定义:向package.xml文件中原创 2020-05-14 18:14:05 · 678 阅读 · 0 评论 -
ROS笔记三(基于Python、Kinetic):自定义消息类型
前言:一个消息定义文件包含一系列的构成此消息的类型。这些类型可以是ROS内建消息类型比如std_msgs包中定义的或是自己定义的消息类型。定义消息后,需要catkin_make编译。1.创建消息类型的定义文件:在my_code报下创建msg目录,用于存放消息源文件。下面定义一个Complex消息,文件名Complex.msg:float32 realfloat32 imaginary2.告知构建系统有新消息的定义:向package.xml文件中添加以下代码即可:...原创 2020-05-14 17:36:48 · 904 阅读 · 0 评论 -
ROS笔记二(基于Python、Kinetic):通信机制——话题(topic)
前言:话题实现了一种发布/订阅的通信机制,这是一种在分布式系统中常见的数据交换方式。节点在发送数据到话题上之前,必须先声明话题名和发送到该话题的消息所具有的类型。1.声明一个话题...原创 2020-05-13 21:09:49 · 650 阅读 · 0 评论 -
ROS笔记一(基于Python、Kinetic):创建工作空间及ROS程序包
前言:在编写ROS代码之前,首先为这些代码建立工作空间。创建之前先确认是否将ROS全局设置的脚本加入.bashrc文件中。如果没有,可以手动添加:source /opt/ros/kinetic/setup.bash1.创建catkin工作空间并初始化:mkdir -p ~/catkin_ws/srccatkin_ws为工作区路径,可任意命名cd ~/catkin_ws/srccatkin_init_workspacecatkin_init_workspace命..原创 2020-05-13 15:59:34 · 624 阅读 · 0 评论 -
启动roscore报错:ImportError:No module named 'defusedxml'解决方案。
问题描述:解决方案:1.查看系统python解释器指向:ls -al /usr/bin/python下面是笔者的情况:指向python3.52.修改软链接指向python2.7sudo rm -rf /usr/bin/pythonsudo ln -s /usr/bin/python2.7 /usr/bin/python...原创 2020-05-12 19:19:04 · 1648 阅读 · 0 评论 -
ROS包创建问题:The 'catkin-pkg==0.4.18' distribution was not found and is required by the application解决方法。
问题描述:解决方案:pip install catkin-pkg==0.4.18安装完成后便可创建ROS程序包。原创 2020-05-12 17:15:13 · 1985 阅读 · 0 评论 -
catkin_make后输出:ImportError: No module named 'catkin_pkg'解决方案.
问题描述:解决方案:1.打开catkin_make文件:sudo gedit /opt/ros/kinetic/bin/catkin_make2.将脚本解释器改为“#!/usr/bin/python2”即可原创 2020-05-12 16:13:19 · 2649 阅读 · 0 评论 -
ROS全局设置脚本加入.bashrc中:source /opt/ros/kinetic/setup.bash
摘要:在ros中创建一个catkin工作区之前需要将ros全局设置的脚本加入.bashrc文件中。1.基于Ubuntu14.04下的ros的indigo版本:source /opt/ros/indigo/setup.bash2.基于Ubuntu16.04下的ros的kinetic版本:source /opt/ros/kinetic/setup.bash加入后在终端输入gedit .bashrc即可查看:...原创 2020-05-12 15:02:58 · 3558 阅读 · 0 评论