Coder Social home page Coder Social logo

gimpelzhang / airsim_ros Goto Github PK

View Code? Open in Web Editor NEW
49.0 3.0 8.0 885 KB

AirSim ROS packages: modified ros wrapper for airsim, and some vslam related tools. (Mainly focused on Car SimMode)

License: MIT License

CMake 3.13% C++ 50.44% Python 46.43%
airsim simulator self-driving-car ros

airsim_ros's Introduction

airsim_ros packages

AirSim ROS packages: modified ros wrapper for airsim, and some vslam related tools. (Mainly focused on Car SimMode).

A demo City simulation environment in unreal is provided.

Package overview

  • airsim_ros_pkgs: Modified ros wrapper for airsim
  • airsim_car_teleop: A keyboard teleop ros node to control the simulating Car in airsim
  • settings: Vslam simulation tests setting files
  • simu_tools: Simulation related tools for handling the trajectory ground truth & dataset postprocessing

Features

  • Campared with the original ROS node, the stereo images timestamps sync problem is solved(ref). Now the timestamp difference between a left and a right image is at max 0.003 second (ubuntu 16.04, 32G, ros-kinetic, UE 4.24, no GPU).
### A ROS node for the Car SimMode, according to the original repo of microsoft/AirSim:
roslaunch airsim_ros_pkgs airsim_car_with_joy_control.launch

### A self-written ROS node for the Car SimMode (No longer maintained, since microsoft/AirSim supports Car ROS node now)
roslaunch airsim_ros_pkgs airsim_car_node.launch
  • If you do not have a joy control hardware, here is a keyboard control node for the Car simulated with the ROS node above. Usage:
roslaunch airsim_car_teleop airsim_car_teleop_joy.launch
  • Simulation tools are provided to convert the car trajectory ground truth rostopic to a txt file (TUM), for evaluation postprocessing purpose. If there are any unexpected empty images in the dataset (with the phenomenon: an opencv Exception "Image is wrongly formed: height * step != size or 0 * 0 != 1" raised), there is a python script to remove them.
### Either use the pose recorder node to record the ground truth during simulation: 
roslaunch simu_tools car_pose_recorder output_filename rostopic_name

### Or use the python script /simu_tools/scripts/groundtruth_extractor.py to extract the ground truth from a rosbag. 
./groundtruth_extractor.py

### To move the empty images:
./images_remove.py
  • Along with the releases, an editable demo City simulation environment is provided to test the ROS wrapper (for linux only). The AirSim plugin in this environment is a modified version from this repo: GimpelZhang/AirSim, which is trying to solve the simulation speed problem in the Car SimMode ClockSpeed setting.

screen_shot

More applications in vslam:

screen_shot

screen_shot

Known bugs:

1. The weather option doesn't work. Described in the [issue](https://github.com/microsoft/AirSim/issues/2957)

2. Empty images occasionally occur in output image rostopics. Temporarily the solution is images_remove.py

airsim_ros's People

Contributors

gimpelzhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

airsim_ros's Issues

IMU data problem

在结合imu数据的双目视觉slam算法测试当中,使用car ros node录制的数据集,在只用双目数据时,观察输出的前端VO结果非常准确。
但是一旦应用imu数据,前端后端都会产生极大误差,imu到双目的转换矩阵参数的估计看上去也不准确不稳定。

可能与car ros node中输出的imu数据的坐标轴有关。

Car ROS node launch error during using released environment

在使用如Neighborhood等Linux版的已生成好的仿真环境时,使用multirotor的ros node可以正常启动,但是使用car的ros node时,就会报错:

terminate called after throwing an instance of 'std::runtime_error'
what(): Duration is out of dual 32-bit range
[airsim_car_node-2] process has died [pid 19990, exit code -6, cmd /data/AirSim/ros/devel/lib/airsim_ros_pkgs/airsim_car_node __name:=airsim_car_node __log:=/home/junchuan/.ros/log/245b0d9e-bc1d-11ea-8d8b-00d86127892a/airsim_car_node-2.log].
log file: /home/junchuan/.ros/log/245b0d9e-bc1d-11ea-8d8b-00d86127892a/airsim_car_node-2*.log

Error in timestamps sync modification in ROS node for Car SimMode

按multirotor节点修改car节点后,catkin_make通过,但启动block后,roslaunch节点报错如下:

simmode_name: Car
Imu
Waiting for connection -
Connected!

Client Ver:1 (Min Req:1), Server Ver:1 (Min Req:1)
Waiting for connection -
Connected!

Client Ver:1 (Min Req:1), Server Ver:1 (Min Req:1)
Waiting for connection -
Connected!

Client Ver:1 (Min Req:1), Server Ver:1 (Min Req:1)
[ INFO] [1592457229.954081444]: Car control 5.000000ms
AirsimCarROSWrapper Initialized!
[ INFO] [1592457230.365428773]: Grab image cost 393.392000ms Length 2 name drone_1
[ INFO] [1592457230.365685748]: 1592457203058666496
[ INFO] [1592457230.365856012]: 1592457203058966528
terminate called after throwing an instance of 'std::future_error'
what(): std::future_error: Broken promise
[airsim_car_node-2] process has died [pid 25520, exit code -6, cmd /data/AirSim/ros/devel/lib/airsim_ros_pkgs/airsim_car_node __name:=airsim_car_node __log:=/home/junchuan/.ros/log/7dec9cd4-b122-11ea-932f-00d86127892a/airsim_car_node-2.log].
log file: /home/junchuan/.ros/log/7dec9cd4-b122-11ea-932f-00d86127892a/airsim_car_node-2*.log

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.