Git Product home page Git Product logo

gazebomarsrover's Introduction

Mars Rover Simulation In Gazebo

  参考了项目curiosity_mars_rover/Curiosity Mars Rover, 基于Gazebo和ROS搭建火星车地形感知仿真平台, 结合urdf和sdf描述文件实现了摇臂转向架式火星车的悬架差速效果(参考Mars Rover Rocker-Bogie Differential, 受限于URDF/SDF本身的缺陷,只能实现Differential Bar,而无法实现Differential Gearbox);同时添加了激光雷达传感器,模拟出3D激光雷达的效果, 添加激光雷达传感器时参考了GitHub项目velodyne_simulator, 地形模型来源于NASA的3D资源库
  由于火星车没有设计转向机构,驱动车运动使用左右车轮差速转向,使用插件"libgazebo_ros_skid_steer_drive.so"(位于ROS安装目录下的lib目录下),源码见gazebo_ros_skid_steer_drive.cpp,通过给Topic /cmd_vel设置linear.x和angular.z即可驱动车运动。另外,通过在本地修改编译该插件的源码,添加了键盘控制车运动的功能,参考ros例程turtlesim的turtle_teleop_key节点源码linux下C实现对键盘事件的监听(按下键盘的时候程序立刻读取);以及游戏手柄控制车运动的功能,程序参考了[joysticker]使用Ubuntu读取USB手柄/方向盘的输出控制

  • 关于键盘、手柄控制车运动功能的描述:上下左右键控制车以恒定的速度、角速度前进或者转弯,前进即↑键,左转即←键,同时按下是无法实现既前进又左转的,速度可通过设定ROS参数服务器中的"Speed"和"RotationSpeed"来改变;手柄控制,左摇杆控制前进后退,右摇杆控制左转右转,根据摇杆摇动幅度改变速度、角速度,其最大速度也是通过设定ROS参数服务器中的那两个参数来改变的;更详细的说明参考程序代码,功能实现在"plugins/SkidSteerDrive/src/SkidSteerDrive.cpp"的scanKeyboard()和scanXBOX()函数中。
  • 还有,编写该README时参考了博客GitHub上README.md排版样式教程_需要时间-CSDN博客github中README.md书写规范kaivin/markdown一个支持实时预览的在线Markdown编辑器 - Markdoc,首行缩进是把输入法设置为全角再输入空格。
  • 这里吐槽一下,编写这个README的时候,碰到比如这样一段"/opt/ros/melodic/lib",如果恰好位于行尾而不能全部显示时会将这一整段放到下一行,导致本行末尾一大段的空缺!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.