C++学习记录(非系统学习,纯使用中遇到的) 类中操作符号class FG_eval {FG_eval()void operator()(){}}这种伪构造函数,可以看作构造函数 第一个()是运算符的意思,第二个是参数,或无参数typedef CPPAD_TESTVECTOR(AD<double>) ADvectortypedef 是定义一种类型的新别名,但是不是一种简单字符串替换...
先锋机器人Pioneer3 DX使用 3个功能包安装使用hokuyo_node, rosaria, rosariakeyboard功能包,分别是,单线激光功能包,先锋机器人功能包,键盘控制功能包。 功能包中有readme,按照操作即可。连接真机使用正确连接后,对激光和小车上电。然后需要对USB口给权限。sudo chmod 777 /dev/ttyACM0 #是零, 这个是激光的USB口sudo chmod 777 /dev/ttyUSB0 #是零,是机器人的口运行小车和激光roscorerosrun hokuyo_no
在launch 中发布静态tf变换 方法name自己随便定,args分别代表了 x y z yaw pitch roll。此命令一般在launch文件中引用,声明base_link 到 laser的坐标变换关系。40代表40ms发一次。如果args有7个参数则代表 x y z qx<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.14 0.0 0.0 0.0 0.0 0.0 /base_link /laser
动态障碍创建中的问题——障碍物速度命令影响机器人运动 问题:当运行move_base进行导航的以及控制障碍物运动同时进行的时候,机器人会受到障碍物速度命令的影响原因:先锋机器人的坐标系odom(里程计坐标系)并没有传递给move_base,因为障碍物的里程计坐标系也是odom,所以move_base的订阅了两个,导致的。解决办法:把move_base的参数文件dwa_local_planner_params.yaml文件中的odom_topic修改为先锋的RosAria/odom...
ros Navigation DWA学习 参考博客ROS 源码阅读——局部路径规划之DWAPlannerROS分析dwa_planner_ros.cpp中的computeVelocityCommands()函数是计算最后的速度指令的。在函数中,首先得到机器人位置,然后得到全局路径映射后的局部路径,然后由dp_.updatePlanAndLocalCosts()更新打分,然后判断是否到达目标附近,是的话调用停止的函数发布速度,否则调用dwaComputeVelocityCommands计算速度。dp_.updatePlanAndLocalCos
搭建移动机器人作为动态障碍以及social_navigation_layers功能包使用 搭建机器人作为动态障碍搭建机器人博客ROS学习8-10这里有个问题是,机器人的robot_base比较矮,需要修改base_length的高度 要满足 2z + r = d。 2*wheel_joint_z + wheel_radius = base_lengthlength_base:0.4joint_z:0.17radius: 0.06修改launch 启动多机器人如何在Gazebo中实现多机器人仿真因为是作为障碍物,可能需要修改下里面link的名字,按照第一个博客里面是base_li
多消息同步回调 按照 message_filters wiki中介绍编写程序报错:error: ‘value’ is not a member of ros::message_traits::TImeStamp<消息类型>问题:消息类型中没有Head,就是没有时间戳信息。所以不能够同步。answer ros org
costmap_2d第二次阅读理解(源码第二次看确实会有新的认识) 流程costmap_2d_node 中 创建一个costmap2DROS 的对象,在costmap_2DROS的构造函数中会调用reconfigureCB 函数,reconfigureCB函数有map_update_thread_的线程,会启用 mapUpdateLoop函数,在这里对象 publisher_会发布代价地图layered_costmap_ 是类LayeredCostmap的实例化对象LayeredCostmap 实例化不同的层插件并将它们聚合为一层的类。layered_costmap
错误解决:std::cout 在ros中不能够打印信息到屏幕上。 如题原因,启动时用launch文件进行启动。原来的launch文件内容:<node pkg="pkg_name" name="node_name" type="可执行文件名">这里缺少了out=“screen”,这样导致输出内容会到一个log文件,而非终端屏幕。正确格式:<node pkg="pkg_name" name="node_name" type="可执行文件名" output="screen">launch文件介绍...
宾夕法尼亚大学:Robotics: Computational Motion Planning Week 2 Configuration Space 视频笔记位形空间 configuration Space(之前我博客都是配置空间)。就是无障碍时机器人工作空间,以及有障碍时候,对障碍进行膨胀后的空间(这里我个人理解好像有点问题)。如图:右边障碍物位姿空间,是由障碍物形状,和机器人形状共同造成的。然后再右边的空间进行寻找路径。视频2.2是一个二自由度的机械臂的例子,也是障碍物位形空间。视频2.3是在二自由度基础上,加入了小车的旋转。也就是三个自由度了。而且把旋转角度当做了z轴,数学上可以理解,但是画成图就看不太懂了。然后就是在位形空间规划路径的
宾夕法尼亚大学:Robotics: Computational Motion Planning 课程习题以及个人代码一:A*以及Dijkstra 非常感谢 Kin__Zhang 的B站视频以及代码解释。可以在coursera课程中选择旁听下载代码。附上链接:B站\qquad\qquadCSDN博客视频1-4为week 1的内容。主要是Dijkstra算法和A*算法。个人感觉视频中讲解较为简单。我自己感觉还不错的两篇讲解文章:Dijkstra\qquadA*+Dijkstra代码中TestScript1.m为测试用程序map = false(10);% Add an obstaclemap (1:3, 6) = true;map (
Motion Planning for Mobile Robots论文翻译总结 Introuct移动机器人的运动规划器建立在解决两个步骤的算法基础上:表示环境和机器人;根据表示进行路径搜索。当前已有方法缺少一个通用的对这两个步骤进行组合的方法。该文章就是挑选适合的方法解决这两个步骤的运动规划,并且选择合适方法进行组合这不同的类。Motion Planning运动规划即在一个包含动态静态障碍物的环境下(通常是不确定的),为机器人规划出一个路径。运动规划器服务于三个不同的目标:构建地图,覆盖和导航。该文是地面导航。通常运动规划包括表示机器人和它的环境,并在表示的环境中搜索路径。这两
Ubuntu18.04使用apt update更新报错W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引 <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-b5506197d8.css"> <div id="content_views" class="markdown_views prism-tomorrow-night"> <svg xmlns="h...
rviz无法订阅点云PlontCloud2问题 遇到的问题:原因,在发布点云的时候没有给定frame_id.pointcloud2.header.frame_id = "map"; //加入这句话pub_.publish(pointcloud2);然后错误解决!
vscode使用debug报错 program “***“ does not exist 错误如下:但是build是可以成功的,就是debug会显示这个错误。后续也修改了launch文件什么的,但是没有解决。最后把add_executable(kalman_prediction src/kalman.cpp)修改为add_executable(kalman src/kalman.cpp)。问题得到解决。具体这个为什么会成功,原理还没搞清楚。...