
机器人技术
机器人,ROS
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
南山二毛
怕什么真理无穷,进一寸有一寸的欢喜。
展开
-
移动机器人系列6——移动机器人预测、决策、规划、控制介绍
路径规划和轨迹规划框架路径规划 path planning给出机器人的空间位置序列。包括全局路径规划和局部路径规划。全局路径规划可以用djstra,A star。一般是一个折线。轨迹规划 motion planning求出车辆位置的时空序列。行为决策主要是做抽象的驾驶决策,决定当前应该是跟车还是换道。路径规划时在决定换道后,该沿着一条什么样的曲线来进行移动。轨迹规划:决定什么时候加减速,什么时候打多大方向盘。车辆导航:车辆从一个地方运动到另一个地方。关于乘用车的思考无人车的决策规原创 2022-04-15 03:29:21 · 1653 阅读 · 0 评论 -
移动机器人系列5——机器人的闭环控制
1 移动机器人的开环控制根据移动机器人的路径规划所生成的线速度、角速度直接控制移动机器人,而没有考虑机器人当时的行进速度与瞬时位置。这样会存在什么问题呢,问题如下所示:没有考虑当前的行进速度,当控制命令与移动机器人的速度差别大时,恒定的加速度会导致速度增加过急或过缓。加速过急会使车产生较大震动加速过缓则不能及时到达预定目标速度,从而便宜路线当没有位置反馈时,移动机器人并不能准确沿着路线规划时的路径运动,会导致轨迹偏离目标路线。解决办法:同时考虑机器人的当前位置和瞬时速度,再结合机器人的控原创 2022-04-15 02:10:03 · 2441 阅读 · 0 评论 -
移动机器人系列4——移动机器人动力学
1 机器人动力学模型(差分驱动模型)非完整约束移动机器人(可控自由度数小于机器人的总自由度数)的拉格朗日方程表示如下(一脸懵逼):对于差分移动机器人,qqq是机器人的状态,有位置和速度在平面里面机器人的自由度是3,就是前后,左右,旋转。差速轮机器人没有左右自由度,所以是非完整约束机器人。移动机器人的整个系统动能表示如下(我也不知道怎么推倒的,先假装知道,我的高中物理动能定理还需要复习一下)对机器人的x,y,θx,y,\thetax,y,θ位置以及左右轮子速度进行求导。...原创 2022-04-15 01:15:50 · 1642 阅读 · 0 评论 -
移动机器人系列2——移动机器人正运动学
1 移动机器人坐标系表示机器人在局部坐标系内的位姿表示为ξR\xi_RξR在全局坐标系内的位姿表示为ξI\xi_IξI我们可以得出机器人的状态为:ξI=[xyθ]\xi_I=\left[\begin{matrix} x\\ y \\ \theta\\ \end{matrix}\right]ξI=⎣⎡xyθ⎦⎤在线性代数里面,线性变换就是一个矩阵,而一个向量的线性变换是一个旋转,所以矩阵就是一个旋转。在平面中,机器人只绕zzz轴旋转,机器人的旋转矩阵如下:R(θ)=[cos原创 2022-04-15 01:02:29 · 536 阅读 · 0 评论 -
移动机器人系列1——移动机器人分类
1、差分类型双轮驱动四轮驱动场景的机器人场景。2、 三轮车型3、自行车型在电动汽车和无人驾驶车里很常见。4、全向移动型全向轮可以绕轮子主轴旋转,也可以绕轮子轴心旋转。机器人的轮子左上角斜向下,右轮斜向上。四轮转速相同,合力向左...原创 2022-04-15 00:18:25 · 1049 阅读 · 5 评论 -
Webots教程1——建立第一个世界
webot学习文档1、学习文档官方文档:https://cyberbotics.com/doc/guide/indexgithub:https://github.com/Beta-y/webots_referenceswebots软件目录介绍安装完webots后,目录如下,加载大疆无人机的仿真世界创建一个新世界添加背景添加底板添加一个机器人...原创 2022-03-14 23:27:42 · 890 阅读 · 0 评论 -
树莓派+ROS环境构建
1 无网线 无屏幕连接笔记本制作好镜像后在树莓派的boot盘添加文件:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=CN network={ ssid="wifi名称" psk="wifi密码" key_mgmt=WPA-PSK priority=1}country=CN 必须要添加,否则文件会被系统删除。参考:h原创 2021-10-14 02:48:22 · 395 阅读 · 0 评论 -
catkin_make相关操作
编译指定包catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”但是我之后想编译所有包的时候用catkin_make指令但是这个时候还是只能编译我之前的指定包。通过输入catkin_make -DCATKIN_WHITELIST_PACKAGES=""之后可以成功恢复编译所有包的配置。catkin_make clean...原创 2020-01-13 11:54:32 · 9580 阅读 · 0 评论 -
实验中用到的机器人包总结
移动机器定位导航部分IMROBOTthurobotteleop_twist_keyboardsimulate(arbotix_ros mbot_bringup mbot_description mbot_navigation rbx1)riki_msgsriki_pidnavigation(robot_localization-kinetic-devel rikirobot_...原创 2019-11-12 12:00:10 · 2180 阅读 · 0 评论 -
thurobot实验中的各种故障总结
1 工控机无法开机:需要先给机械臂电源上电,再给移动底盘机器人上电2 远程控制机器人时突然失去连接检查是否开启了航模遥控器,防止无线电信号干扰3 无法运行roscore:检查本机的.bashrc配置,是否为ros主从模式...原创 2019-11-11 09:02:33 · 1998 阅读 · 0 评论 -
(每日一读2019.10.26)2019年SLAM综述
摘要slam是同步定位和建图的缩写,它包含定位和建图两个主要任务。这是移动机器人学中一个重要的开放性问题:要精确地移动,移动机器人必须有一个精确的环境地图;然而,要建立一个精确的地图,移动机器人的感知位置必须精确地知道[1]。这样,同时建立地图和定位就可以看到一个问题:先是鸡还是蛋?(地图还是运动?)1990年,[2]首次提出使用扩展卡尔曼滤波(ekf)来逐步估计机器人姿态上的后验分布和标志点的...原创 2019-10-25 21:49:23 · 3233 阅读 · 3 评论 -
(每日一读2019.10.23)低漂移、鲁棒和快速的视觉-激光里程计和建图(VLoam)
参考:https://www.jianshu.com/p/cb7098567711论文:pdf摘要本文开发了一个低成本的立体视觉惯性定位系统,该系统利用有效的基于多状态约束卡尔曼滤波(MSCKF)的视觉惯性里程计(VIO),同时利用先验激光雷达图提供有界误差的三维导航。除了VIO中使用的标准稀疏视觉特征测量外,在紧密耦合的MSCKF更新中,还利用视觉半稠密云到先前激光雷达地图的全局校准,从而...原创 2019-10-23 19:13:49 · 5100 阅读 · 1 评论 -
(每日一读2019.10.22)cartographer论文(Real-time loop closure in 2D LIDAR SLAM)
便携式激光测距仪(也就是LIDAR)以及实时定位和绘图(slam)都是比较有效的一种建立平面图的方法。实时生成和绘制平面图能很好的评估捕获的数据的质量。因此建立一个在有限的资源下可接入的平台是非常有必要的。这篇论文提供了一种在mapping 平台后台使用的方法来实现5cm分辨率的实时绘图和闭环检验。为了达到实时闭环检测,我们使用了分支定界法来计算scan-to-map的匹配作为约束。原创 2019-10-22 15:05:46 · 2242 阅读 · 0 评论 -
(每日一读2019.10.21)紧耦合的3D雷达惯性里程计及建图(LIO)
论文:pdf代码:github视频:video摘要自身运动估计是大部分移动机器人应用的基本需求。通过传感器融合,我们能够补偿单个传感器的缺陷并且提供更可靠的估计。在本文中,我们引入一种紧耦合的雷达-惯导融合的方法。通过联合最小化雷达和惯导的测量损失,雷达-惯导里程计(LIO)在长期的试验后,在可接受的漂移,甚至是在激光雷达测量会降级的具有挑战性的情况下表现不错。此外,为了获取雷达位姿的更可...原创 2019-10-21 14:49:06 · 3309 阅读 · 0 评论 -
(每日一读2019.10.20)基于模型的轮式车辆实时路径规划
论文: Real-time Model Based Path Planning for Wheeled Vehicles摘要本文提出了一种基于模型的通行性分析方法,该方法利用详细的车辆模型在复杂环境中进行实时路径规划。车辆模型表示了车辆的车轮和底盘,使其能够准确预测车辆的3D姿态、每个车轮详细的连接信息以及在代价地图上给出2D姿态时是否会发生底盘碰撞。根据车辆的安全要求对这些预测进行加权,以便...原创 2019-10-20 23:57:29 · 2205 阅读 · 0 评论 -
(每日一读2019.10.18)向人类学习如何抓取:数据驱动的架构 拟人软手自主抓握
摘要软手是将顺应性元素嵌入其机械设计中的机器人系统。这样可以有效地适应物品和环境,并最终提高其抓握性能。如果与经典的刚性手相比,这些手在人性化操作方面具有明显的优势,即易于使用和坚固耐用。但是,由于缺乏合适的控制策略,它们在自主控制方面的潜力仍未得到开发。为了解决这个问题,在这项工作中,我们提出了一种方法,可以从观察人类策略开始,使软手能够自主地抓握物体。通过深度神经网络实现的分类器将要抓取的物...原创 2019-10-20 17:37:22 · 1977 阅读 · 0 评论 -
Qt5+Ros+GUI界面
在之前建立的工程的基础上添加一个gui界面。在ros包中新建一个文件夹,名字叫gui右击gui文件夹添加一个文件,选择Qt->Qt设计师界面类选择MainWindow选择下一步最后在gui中生成三个文件 mainwindow.cpp、mainwindow.h、mainwindow.ui但此时,这些新创建的文件和原本的ros工程还没建立任何关系,只是目录下多出了几个文件而已...原创 2019-05-30 23:01:16 · 8569 阅读 · 7 评论 -
ros+qt GUI 交互
阶段1:设计一个GUI界面,当按下按钮时,发送一个ros消息。思路:将ui设计,ros节点分离,按照面向对象的思路进行参数的传递。首先程序从主函数进入,创建一个MainWindow对象,用来作界面显示。MainWindow类内添加一个qnode的ros节点对象qnode对象的具体实现在Qnode类中当connect按键按下时调用qnode对象的init()方法,初始化一个ros节点。...原创 2019-05-31 15:51:36 · 4369 阅读 · 2 评论 -
Qt+ROS+GUI+OpenCV图像处理与显示
代码链接:https://github.com/MRwangmaomao/QT_ROS_kinect_disp效果显示:参考:https://blog.youkuaiyun.com/qq_30460905/article/details/79080993https://www.cnblogs.com/wishchin/p/9200329.html...原创 2019-06-01 10:29:05 · 3285 阅读 · 5 评论 -
qt中按下按键运行ros指令
写一条语句即可。system("gnome-terminal -x zsh -c 'source ~/catkin_kinect/devel/setup.zsh;roslaunch kinect2_bridge kinect2_bridge.launch limited:=true'&");gnome-terminalgnome-terminal是linux里面的终端模拟器。-...原创 2019-06-02 22:57:21 · 3433 阅读 · 1 评论 -
QT+ROS开发
Qt Creator for ROS如果想在Qt上进行ros包的开发和GUI界面开发,建议采用下面的方法。https://ros-qtc-plugin.readthedocs.io/en/latest/_source/How-to-Install-Users.htmlSetup Qt Creator for ROSSetup Ubuntu to allow debugging/ptrace...原创 2019-05-30 21:53:31 · 7965 阅读 · 2 评论 -
ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)1. 网站资源:ROSwiki官网:http://wiki.ros.org/cnGitHub :https://github.com/ExBot :http://blog.exbot.net/ROSwiki :http://www.ro...原创 2019-03-11 10:40:00 · 2314 阅读 · 3 评论 -
使用Kinect v2进行导航建图(gmapping+amcl)
功能:利用KinectV2得到的深度图数据和Gmapping算法来建图硬件平台:turtlebot2kinectV2系统平台:ubuntu14.0ros indogo所有文件都放在了我自己建立的一个名字叫turtle_slam的ros包的launch文件夹中。第一步 建立gmapping的启动文件kinect2_gmapping.launch文件$ touch kinect2_...原创 2018-12-03 14:58:22 · 5924 阅读 · 6 评论 -
ros launch在大工程中的应用
1 roslaunch基本用法1 使用launch文件Launch文件是ROS提供的,可以同时运行多个nodes的文件。Launch文件以一种特殊的XML格式编写,在ROS packages中使用广泛。1.1 运行launch文件$ roslaunch package_name launch_file_nameEg: roslaunch turtlesim example.launch...原创 2018-12-02 00:24:33 · 1871 阅读 · 0 评论 -
ROS dynamic_reconfigure学习
dynamic_reconfigure可以用来实时修改参数,很适合用于机器人参数可视化在线调试。减少了在调试机器人的时候修改完参数再编译这样低效的操作过程,同时效果和qt GUI差不多。下面详细介绍一下整个过程。首先我们需要创建自己的一个ros包 catkin_create_pkg --rosdistro ROSDISTRO dynamic_tutorials rospy roscpp dy...原创 2018-12-01 17:48:32 · 3633 阅读 · 1 评论 -
QT_visp显示
开源代码:https://github.com/MRwangmaomao/QT_ROS_Visp_kinectV2_platformCMakeLists.txt文件中:…find_package(VISP REQUIRED)…include_directories( include ${VISP_INCLUDE_DIRS} ${roscpp_INCLUDE_DIRS} )…targ...原创 2019-06-01 16:31:38 · 1902 阅读 · 0 评论 -
ROS自学笔记6--Master和node
我们启动ROS,第一步需要输入$ roscore启动了一个roscore master,master 是用来管理系统中的很多进程的,例如进程之间的通信,参数等等。启动完后会生成master(节点管理器),rosout(日志输出),parameter server(参数服务器)。启动完master,我们就可以启动node,一个node就是一个我们所说的进程,ros里面有个专门的名字叫...原创 2018-07-30 01:01:16 · 7031 阅读 · 0 评论 -
ros中的消息话题和服务话题封装到类中的方法
以大寰机器人的电爪控制为例。将机器人电爪的控制封装为一个节点,并通过一个简单的stdmsg::Int8消息话题控制电爪张开的大小。首先需要通过init方法初始化一个ros节点,然后初始化一个ros节点句柄n。初始化一个DH_HandActionClient对象,将句柄传入到这个对象中。这样的目的是我们可以在类中自定义一些ros话题,服务或者动作等通信。 int main(int arg...原创 2019-08-22 14:59:12 · 2996 阅读 · 0 评论 -
ros包生成python节点
有时候在ros包中我们需要写一些python脚本,但是每次执行都需要到脚本的路径下执行。当需要在其他ros包的launch文件中调用该脚本或者需要直接运行节点时会提示找不到。解决办法:第一步在CMakeLists中添加:install(PROGRAMS scripts/your_scripts.py DESTINATION ${CATKIN_PACKAGE_BIN_DES...原创 2019-08-16 15:18:36 · 5305 阅读 · 1 评论 -
ros多线程管理
单线程Spinningros::spin()是最简单的单线程自旋, 它会一直调用直到结束用法: ros::spin();ros::spinOnce()另一个单线程spinning是ros::spinOnce(),它定期调用等待在那个点上的所有回调用法: ros::spinOnce();简单的我们自己实现一个用法相同的ros::spin()这样:ros::getGlobalCa...原创 2019-08-25 14:21:19 · 3074 阅读 · 0 评论 -
AMCL原理
1 粒子滤波和蒙特卡洛蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了不规则形状的面积。拿机器人定位来讲,它处在地图中的任何一个位置都有可能,这种情况我们怎么表达一个位置的置信度呢?我们也使用粒子,哪里的粒子多,...原创 2019-08-14 16:52:54 · 3000 阅读 · 0 评论 -
IMU传感器标定
原创 2019-08-07 11:19:10 · 2950 阅读 · 0 评论 -
catkin命令安装
1 catkin安装sudo apt-get install python-catkin-tools安装完成后执行catkin --help2 使用说明原创 2019-08-13 16:56:59 · 14657 阅读 · 0 评论 -
auboi5机械臂连接与ros包研究
auboi5机器人具有碰撞检测功能,提供多个安全接口,支持示教拖动和轨迹学习,具备关节限位和缩减模式功能。https://github.com/lg609/aubo_robot下载机器人的ros包主要包含auboi5_moveit_config aubo_description aubo_demo aubo_driver ...原创 2019-08-08 12:55:01 · 5354 阅读 · 12 评论 -
turtlebot2机器人连接不上
上个月由于Linux系统崩溃我重新安装了Linux系统,然后ros和turtlebot的包重新安装了一遍,但是在连接机器人时却提示机器人连接不上,机器人电池未上电等提示。我以为是电池电量不够了,但是测量发现电量是满的,于是排除了硬件的原因,发现是电脑的USB没有识别到turtlebot。在控制台输入ls /dev/kobuki 提示没有找到。添加别名rosrun kobuki_ftd...原创 2018-10-08 11:11:38 · 3211 阅读 · 1 评论 -
Robotics System Toolbox ROS入门
Matlab的机器人工具箱提供了ROS模拟器,我们可以在上面设置ROS并获取ROS的相关信息。初始化ROS网络节点使用rosinit初始化ROS。默认情况下在Matlab中创建ROS主机并且启动连接到主机的全局节点。>> rosinitInitializing ROS master on http://DESKTOP-AKNUDCB:11311/.Initializing g...原创 2018-09-25 17:01:23 · 3995 阅读 · 0 评论 -
SLAM学习资料
(1) orb_slam 官网(网站最后有5篇论文,价值很高) http://webdiis.unizar.es/~raulmur/orbslam/ (2)半仙居士blog(可以都看,很经典) http://www.cnblogs.com/gaoxiang12/ (3) 贺一加 blog(monocular slam 和navigation讲的很好可以看看) http://blog.cs...原创 2018-08-22 08:36:06 · 1966 阅读 · 0 评论 -
ROS自学笔记7--MatePackage
MatePackage是Linux的一个文件管理系统的概念。是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来。例如我们通过sudo apt-get install roskinetic-desktop-full 命令安装的ros就是一个虚包。例如Navigation这个package就是一个MatePackage,这个文件夹下面packag...原创 2018-08-13 22:51:23 · 2480 阅读 · 0 评论 -
ROS自学笔记4--工作空间与编译系统
下图是ROS的一个工程结构,反应的是文件系统之间的关系。一个典型的ROS工程就是这个样子。 这个文件系统结构为了和我们常用的ntfs,fat32文件结构相区分,我们把它叫做工程结构。 下面来具体介绍一下这个图的结构:1 catkin 空间什么是catkin呢?catkin是ROS定制的编译构建系统对CMake的扩展,编写原则和CMake很像,简单来说catkin就是用来编译ROS工...原创 2018-07-22 19:28:53 · 4884 阅读 · 3 评论 -
ROS自学笔记3--ROS系统中的一个写代码的好工具roboware-studio
通常ROS的程序都是用C++和Python开发的,为了提高开发的效率,我们建议用IDE来写代码。目前在Ubuntu上已经有许多IDE支持ROS开发,比如Eclipse、Qt Creator。不过这些IDE配置起来会比较麻烦,推荐一款适配ROS的IDE——RoboWare Studio来开发ROS。 RoboWare Studio是一个ROS集成开发环境。它使 ROS开发更加直观、简单、并且易于...原创 2018-07-22 17:59:17 · 4155 阅读 · 1 评论