Monthly Archives: September 2020

Rviz,Gazebo,MoveIt区别与联系

参考:https://www.zhihu.com/question/268658280/answer/340190866来源:知乎, 作者:古月 Rviz的几个关键特性: 它是三维可视化工具,强调把已有的数据可视化显示. Rviz需要别人给它喂数据。 rviz提供了很多插件,这些插件可以显示图像、模型、路径等信息。但是前提都是这些数据已经以ROS topic、ROS parameters的形式pubilish,rviz做的事情就是subscribe这些数据,并完成可视化的渲染,让开发者直观地理解数据的意义。 Gazebo是三维物理(机器人的力学物理模型)仿真平台,强调的是创建一个虚拟的仿真环境。Gazebo不是显示工具,强调的是仿真,它不需要等着别人喂数据,而是创造数据。 如果你手上已经有机器人硬件平台,并且在上边可以完成需要的功能,用rviz应该就可以满足开发需求。如果你手上没有机器人硬件,或者想在仿真环境中做一些算法、应用的测试,gazebo+rviz应该是你需要的。另外,rviz配合其他功能包也可以建立一个简单的仿真环境,比如rviz+ArbotiX,可以参考《ROS by Example》,但是其中rviz的本质还是处理显示的部分。 那么Gazebo与MoveIt又是怎样的关系呢?两者功能不一样,不是相互替代的关系。Gazebo是一个simulator, it doesn’t do any motion planning. ROS is (in this context) the middleware that allows gazebo to talk to other software. MoveIt is a motion planning framework that uses ROS to talk to Gazebo.

如何建立和维护ROS catkin-based package

创建ROS Package 每一个ROS package都是~/catkin_ws/src路径下的一个文件夹,所以我们需要在~/catkin_ws/src路径下来创建一个ros package,命令如下: 以上命令中,beginner_tutorials是package的名字,std_msgs rospy roscpp代表了该ros package依赖这三个ros package(ROS自带的)。接下来就要build package了,我们需要回到~/catkin_ws路径下,进行build。 运行该命令之后,你就发现~/catkin_ws/src路径下多了一个文件夹beginner_tutorials,并且该文件夹下有两个文件package.xml和CMakeLists.txt,并且package.xml中自动有了build_depend的信息,即刚才的std_msgs rospy roscpp三个ros packages。 建议:除了第一次~/catkin_ws/src路径下还一个ros package都没有的时候,用catkin_make(会自动生成devel文件夹和build文件夹),后面每次有任何包括的任何文件有更新,都需要把整个src code进行build,而我们可以用更好的命令catkin build或者catkin_make_isolated,具体为什么可以看链接的解释 具体含义 每一个ROS package都是~/catkin_ws/src路径下的一个文件夹,所以通常~/catkin_ws/src路径下有好多个文件夹,每个都是一个ros package。一个ros package文件夹必须包含以下两个文件: package.xml文件: 定义package的名字,license,以及最重要的是定义本ros package的dependency。 buildtool_depend: Use this for buildtool packages,这里我们的build system用的是catkin啦 build_depend: Use this for packages you need at compile time exec_depend: Use this for packages you need at runtime build_export_depend: Use…

Read More

Catkin工作空间的机制

参考以下链接:[1]https://subscription.packtpub.com/book/hardware_and_creative/9781783554713/1/ch01lvl1sec14/setting-the-ros-workspace ROS workspace是用来keep ROS packages. 而通常我们用catkin_based的工作空间来建立和安装ROS packages. Catkin system是ROS的官方build system,帮助我们将source code弄成在ROS workspace中的a target executable 或者libraries, 具体可以看看catkin的发展历史。 A build system is responsible for generating ‘targets’ from raw source code that can be used by an end user. These targets may be in the form of libraries, executable programs, generated scripts, exported interfaces (e.g. C++ header files) or…

Read More

Hierarchical Dynamic Roadmap

[1]Yang, Yiming, Wolfgang Merkt, Vladimir Ivan, Zhibin Li, and Sethu Vijayakumar. “HDRM: A resolution complete dynamic roadmap for real-time motion planning in complex scenes.” IEEE Robotics and Automation Letters 3, no. 1 (2017): 551-558. [2]Leven, Peter, and Seth Hutchinson. “A framework for real-time path planning in changing environments.” The International Journal of Robotics Research 21, no. 12 (2002): 999-1030….

Read More

Rapidly-exploring Random Tree(RRT)

[1] Robotic Motion Planning, RI16-735 [2]Lecture notes of Fall 2019: CS 287 Advanced Robotics by Prof. Pieter Abbeel from UC Berkeley, Dept of Electrical Engineering & Computer Sciences; [3]H. Choset, K. M. Lynch, S. Hutchinson, G. Kantor, W. Burgard, L. E. Kavraki and S. Thrun, Principles of Robot Motion: Theory, Algorithms, and Implementations, MIT Press, Boston,…

Read More

Dynamic Roadmap

[1]Leven, Peter, and Seth Hutchinson. “A framework for real-time path planning in changing environments.” The International Journal of Robotics Research 21, no. 12 (2002): 999-1030. In sampling-based algorithms, collision checking is usually the most expensive operation and reportedly consumes up to 90–95% of the planning time [1]. The Dynamic Roadmap (DRM) , an extension to the probabilistic…

Read More