GithubHelp home page GithubHelp logo

ackermann's Introduction

Overview

image

This document covers a running explanation of how to use the repo, because my memory is terrible

Gazebo_Push_Plugin

This package was directly derived from a Gazebo tutorial giving an example of how to create a plugin which interacts with a Gazebo model in simulation.

ackermann.urdf.xacro

Custom xacro file of an ackermann vehicle. xacro is a scripting language for more easily creating URDF files which is used in ROS but not Gazebo. The scripting functionality greatly simplifies creating a model, and there is an xacro.py script, which turns xacro files into Gazebo useable URDF files. An example of this is available in gazebo.launch.

This file also provides and example of how to load a model with a gazebo plugin, namely gazebo_push_plugin.

Gazebo.Launch

This launch file launches Gazebo and loads ackermann.urdf.xacro into it.

The launch file also launches the robot state publisher, which is important for interfacing between ROS and Gazebo

ackermann.launch

RVIZ Note

Without use of some sort of odometry or localization package, robot_state_publisher will only provide the changes links and joints of the model relative to each other. There are ways of getting the ground truth of the robot, for example the p3d_base_controller as shown in ackermann.urdf.xacro however I haven't made a node to convert the odometry message output to a TF message format, so it will not be visualized in RVIZ yet.

Running the code

Build and start the docker container $ ./docker_build.bash $ docker exec -it ackermann-ros-1 bash

Build the ROS project # source /opt/ros/melodic/setup.bash # catkin build # source devel/setup.bash

Launch the code # roslaunch ackermann_project ackermann.launch You can command the vehicle to a given pose using the command:

# rosservice call /plan_path "x: 10.0
y: 0.0
thetaDegrees: 0.0"

Static Analysis

$ catkin build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1 --

This will create a compile_commands.json in the {project}/build/{package}/ folder for each of the packages of the project. Now you can individually run clang tidy on each package from its {project}/build/{package}/ folder

$ run-clang-tidy-6.0.py -checks='-*,performance-*,modernize-*,readability-*,portability-*,google-*' -fix

ackermann's People

Contributors

raandon avatar

Watchers

 avatar zhouzuhong avatar

ackermann's Issues

Create Heuristics

MHA* can leverage inadmissible heuristics for faster planning. Come up with inadmissible heuristics to improve planner.

Tune Edge Cost Function

The edge cost function should in some way penalize (1)turning and (2)reversing to encourage driving (1)straight over swerving (2)forward over reversing. However, these penalties need to be tuned so that the planner will still explore reversing and multi-point turns thus speeding up planning

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.