机器人平台搭建(四)——为机器人装配激光雷达 目录总述1、rplidar功能包2、PC端驱动rplidar 总述 移动机器人在环境中获取障碍物的具体位置、房间的内部轮廓等信息都是非常必要的,这些信息是机器人创建地图、进行导航的基本数据,使用激光雷达作为这种场景应用下的传感器。激光雷达可用于测量机器人和其他物体之间的距离。 1、rplidar功能包 针对激光雷达,ROS中有相应的驱动功能包——rpl
机器人平台搭建(三)——为机器人装配Kinect 目录 总述1、freenect_camera功能包2、PC端驱动Kinect 总述 除普通USB摄像头,很多应用场景下还会用到RGB-D摄像头来获取更加丰富的环境信息,如Kinect,让机器人不仅可以看到周围的世界,还可感受到周围物体的三维位置。 1、freenect_camera功能包 Kinect在Linux下有两种开源的驱动包,即OpenNI
机器人平台搭建(二)——为机器人装配摄像头 目录 总述1、usb_cam功能包2、驱动摄像头 总述USB摄像头最为普遍,如笔记本电脑内置摄像头等,在ROS中使用这类设备可以直接使用usb_cam功能包驱动。 1、usb_cam功能包 usb_cam是针对V4L协议USB摄像头的ROS驱动包,核心节点是usb_cam_node,相关的话题和参数设置如下。 (1)话题usb_cam功能包发布的话题。名
机器人平台搭建(一)——机器人的组成 目录 总述1、执行机构2、驱动系统3、传感系统4、控制系统 总述 机器人是一个机电一体化的设备,从控制的角度来看,机器人系统可以分成四大部分。即执行机构、驱动系统、传感系统和控制系统。 1、执行机构 执行机构是直接面向工作对象的机械装置,相当于人体的手和脚。根据不同的工作对象,适用的执行机构也各不相同。例如:常用的室内移动机器人一般采用直流电机作为移动的执行机
写在前面 现在购物车有一任务需求,那就是需要进行图像识别和运动控制,因此需要初始化2个进程,从而分别完成相应的动作。因为运动控制需要图像识别的结果,因此现在就涉及到了python语法实现2个进程之间的协同合作,这篇博客就结合实际的python程序通过队列实现进程交互。 程序分析 首先介绍一下我们的需要的库函数: import time from multiprocessing import Pro
不会吧不会吧,不会还有人不知道SmallArmRobot机械臂的吧~ 不过不知道也没关系,看完了图片,你会心动的! 看起来是一个相当帅气的桌面级机械臂,而且还是步进电机的机械臂。这个机械臂和古月大大的Anno机械臂觉得有的一拼,所以你懂得~ 话不多说,先看效果!!! 看起来效果是相当的nice!这里的模型功能包是我使用雪铭大佬的资料,大家可以古月学院找到相关的课程内容,这个课程还是免费的哦~传
基于ROS平台的移动机器人-7-使用Kinect2建图 ready 此教程我将利用KinectV2得到的激光数据和Gmapping来建图(PS:这里你需要一个可以通过ROS控制的移动底盘和一个KinectV2) go 1.安装Gmapping包 (1)cd ~/catkin_ws/src (2)git clone https://github.com/ros-perception/slam_gm
基于ROS平台的移动机器人-6-使用Kinect2获取激光数据 ready 此教程我们将利用KinectV2在ROS平台上将KinectV2获得的深度图片转化为激光数据,以便我们下面的建图和导航。 go 1.我们这里需要一个将深度图转为激光数据的包 (1)cd ~/catkin_ws/src (2)git clone https://github.com/ros-perception/depth
基于ROS平台的移动机器人-5-Kinect2驱动的安装和ROS下的测试 说明 我们这里要测试的对象是Kinect2!!! 实物如图: 驱动安装 1.首先git下载代码,很快下载好,放到~下面 git clone https://github.com/OpenKinect/libfreenect2.git 2.然后安装依赖项如下,最好事先编译安装好OpenCV sudo apt-get ins
基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动 准备工作 1.下载串口通信的ROS包 (1)cd ~/catkin_ws/src (2)git clone https://github.com/Forrest-Z/serial.git 2.下载键盘控制的ROS包 (1)cd ~/catkin_ws/src (2)git clone https://github.com/Forre
基于ROS平台的移动机器人-3-小车底盘与ROS的通信 1.ROS平台与底盘通信协议 ROS平台与小车底盘的通信一般是通过串口或者CAN总线。我这里采用的是串口,以下为我自定义的通信数据格式: (1)底盘串口部分 1.串口接收 (1)内容:小车左右轮速度,单位:mm/s(所有数据都为 float型,float型占4字节) (2)格式:10字节 [右轮速度4字节][左轮速度4字节][结束符
基于ROS平台的移动机器人-2-小车底盘控制说明本博文将介绍小车底盘控制的原理,如PID控制,控制程序的编写等。 小车控制思想1.控制电机转动。电机的控制我们分为两部分,一部分为电机转动方向的控制,另一个为电机转速的控制。电机转动的方向我们用两个MCU引脚来控制,假如PIN_A=1,PIN_B=0 时,电机正转;PIN_A=0,PIN_B=1 时,电机反转;PIN_A=0,PIN_B=0 时,电机
基于ROS平台的移动机器人-1-小车底盘的搭建说明本博文将介绍小车底盘的搭建需要的硬件和搭建过程 物品清单1.亚克力板或者铝合金小车底板一套2.小车轮子一对3.带编码器减速电机一对4.万向轮一个5.12V充电电池一个6.降压模块一个7.电机驱动模块一个8.STM32核心板一块9.Kinect2一个10.工控机或者笔记本一个搭建步骤1.分别将电池,降压模块,电机,万向轮,电机驱动板,STM32核心
任务分析 串口数据流分配大概如上图所示,黑色的箭头即表示了串口数据流,这都还是好理解的,唯一有些难理解的就是蓝色箭头了。蓝色箭头指的是舵机驱动板和丝杆驱动板借由STM32F103芯片实现间接的互相通信。STM32F103在其中扮演着相当重要的命令,由其解析树莓派下发的命令,并且将任务准确分配到舵机驱动板和丝杆驱动板,并且其还解析丝杆驱动板和舵机驱动板上发的命令,保证2块驱动板之间也能实现通信。这样
图片概览 舵机/拨片安装方法 舵机驱动板 思路以及实现 可以看到上图中我们总共有5个拨片,每个拨片都是由一个舵机去控制的,因此我们总共需要5个小舵机,为了区分他们,我将其进行了标号并且他们的变量名称我是按照他们的位置来描述的 #include <Servo.h> Servo UpLeftServo; // 上左,从后往前看,下同 Servo UpRightServo ; // 上右
车子的俯瞰图 赛场循迹线 模式A和B 因为购物机器人的运动需求,我们将其运动状态分为了模式A和模式B,模式A就是购物机器人行进时其中线是和导航线重合的,而模式B前进时,购物机器人的停车条件就是前面的光电传感器感知到了白线示意图如下: 那么为什么要有这2种模式的区别呢?这是因为我们摄像头是放在前面车头的,因此在遍历仓库和货架的时候,前端停车更便于摄像头拍照,因此就设计出了模式B。 思路讲解 流程
写在前面 我们最终的目的是为了实现树莓派做为系统的总控来控制底盘,使其能够完成在整个地图中特定路线的循迹行进任务。下图是比赛场地图,我标出了5个点的位置,根据这5个点的位置规律,可以写出场上每一个点的坐标,并且我将根据这些坐标来完成整张地图的巡线逻辑。 逻辑分析 流程图 我们要目的就是按照如下的流程图所示,具体的底盘是如何运动的,例如抓取机构抓取货物的具体动作,底盘运动的具体循迹方法都是底盘主控芯
A*算法是一种Greedy算法,ROS中的navigation导航包中的global_planner中就能找到。 今天,我们从头入手,自己移植并完成关于A*算法在ROS上的移植和实现。 首先来说一下我们最后想实现的目的: 我们首先画一个200*200像素的“交通路段” 在开始我们的算法之前,首先感谢网友[一路向北]的开源A*算法,他MFC界面的源代码网址如下: 点击打开
写在前面 我们的购物机器人要完成识别,控制,抓取等动作的话,仅靠一块嵌入式芯片是远远不够的,因此我们的购物机器人还搭载了树莓派。我将在这篇博客里面分享树莓派和嵌入式芯片(以STM32F427IIH6为例)通过DMA+USART进行通信的方法。 树莓派 树莓派端我们需要找到USB端口设备,我的树莓派上是CHASSIS_SERIAL_PORT = '/dev/ttyUSB0',获得了端口设备之后就可以
在一台机器人中不可避免地会具有很多种传感器(雷达,视觉,深度...);在机器人的导航中对这些传感器的融合,并形成完整的导航策略是很关键的。对于一台室内/室外机器人来讲,传感器的融合主要分为两个方面: 融合定位,使用GPS/IMU/里程计/视觉/雷达等传感器的数据确定机器人的位置和姿态。 融合导航,在机器人的定位确定的前提下,使用雷达/声呐/图像/深度等数据对机器人进行融合避障。 今天我们就从不
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信