Giter Club home page Giter Club logo

marsim's Introduction

MARSIM

MARSIM: A light-weight point-realistic simulator for LiDAR-based UAVs

Paper is available on Arxiv: https://arxiv.org/abs/2211.10716

The video is available on youtube: https://youtu.be/hiRtcq-5lN0

Update

Ubuntu 20.04 is also supported in ubuntu20 branch.

Ten realistic maps (low and high resolution) have been realeased in the realease packages.

A new branch that merge with FUEL has been released in the fuel_ubuntu20 branch.

Prerequisited

Ubuntu and ROS

Ubuntu 16.04~20.04. ROS Installation.

PCL && Eigen && glfw3

PCL>=1.6, Follow PCL Installation.

Eigen>=3.3.4, Follow Eigen Installation.

glfw3:

sudo apt-get install libglfw3-dev libglew-dev

make

mkdir -p marsim_ws/src
cd marsim_ws/src
git clone [email protected]:hku-mars/MARSIM.git
cd ..
catkin_make

run the simulation

source devel/setup.bash
roslaunch test_interface single_drone_avia.launch

Click on 3Dgoal tool on the Rviz, you can give the UAV a position command to control its flight.

For now, we provide several launch files for users, which can be found in test_interface/launch folder.

You can change the parameter in launch files to change the map and LiDAR to be simulated.

** If you want to use the GPU version of MARSIM, please set the parameter "use_gpu" to true. **

run the simulation with FUEL algorithm

You should first change the branch to fuel_ubuntu20 branch. If you are using ubuntu 20.04, you should first download Nlopt and make install it in your environment. Then you can run the simulation by the command below:

source devel/setup.bash
roslaunch exploration_manager exploration.launch

Then click on 2Dgoal tool on the Rviz, randomly click on the map, and FUEL would automously run.

Acknowledgments

Thanks for FUEL

Future

More realistic maps and functions are going to be released soon.

marsim's People

Contributors

fratopa avatar jackykongfz 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  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  avatar  avatar

Watchers

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

marsim's Issues

fail to build

Hi! Thank you very much for having released the code! I was trying to build it but I got quite a few issues.
The first one is regarding Eigen, the error was: fatal error: Eigen/Core: No such file or directory. I solved this one by changing every instance of #include <Eigen/ to #include <eigen3/Eigen/.
Hoping to have solved this problem I am now presented with a new one I am not able to solve myself, in particular the error I now have is:

/home/my_username/marsim/src/MARSIM/local_sensing/src/pointcloud_render_node.cpp:1194:9: error: ‘size_’ not specified in enclosing ‘parallel’
 1194 | #pragma omp for

with many other like this all regarding the file pointcloud_render_node.cpp.
Do you have any suggestion on how to tackle it?

ROS 2 update

Hi.

First of all, big thanks to the authors and maintainers of this project – great work!

I have a question: Do you have any plans to add ROS 2 support to MARSIM? I'm really interested in using MARSIM for my research and would love cite some of your awesome work. However, I need to integrate it with ROS2.

It would be fantastic if you're considering making it ROS 2 compatible. I guess there are at least hundreds of researchers hoping this to be converted to ROS 2! Or, could you offer any advice on how to port it to ROS 2? For example, which part of the repo should be largely ported from ROS to ROS 2. I'd greatly appreciate it.

By the way, I'm curious if there's any connection between the uav_simulator in FUEL's repository and MARSIM. Are these simulators completely independent?

problem about use fast_lio2 by using data from MARSIM

Hi, i want to thank for your amazing work first.
I encounter a problem when trying to run fast_lio2 by using point cloud and imu data from MARSIM.
I already change the topic name in FAST_LIO/config/avia.yaml as follow
截圖 2023-12-20 下午5 42 08
but point cloud data seem do not successfully connect to /laserMapping
截圖 2023-12-20 下午5 42 36
Thanks for your reply first.

error

how cab i deal with this error .
image

预设轨迹进行仿真

我尝试了采用RVIZ中的3D导航工具进行仿真测量。我想请教一下除了采用这种交互的方式,能否采用读取轨迹文件的方式让无人机按照预设轨迹(区别于控制导航算法)运行?谢谢!

Questions about drone speed control and map loading in the simulator

Hello, I'm currently using the simulator to simulate drone flight. I've encountered two issues with the simulator, namely the drone speed control and map loading issues.

  1. Regarding the drone speed control issue: I would like to be able to control the flight speed of the drone in the simulator. However, I'm not sure how to set it up. What are some methods I can use to achieve this?

  2. Regarding the map loading issue: I have a point cloud with 250,000 points covering an area of 160m x 1000m. However, when I load them into the program, the points are heavily downsampled. I'm wondering if there are any parameters I can adjust to load this environment without downsampling the points.

Thank you for your help!
image
image

Mid 360 simulation

Hi! I found your work to be really interesting, especially being one of the few simulators to support livox sensors and to my knowledge the first to simulate the Mid-360.

Do you have any schedule on when the code will become available?

对感知范围进行修改

想请教一下,如何对感知范围进行修改,我修改了single drone xml的sensing_horizon,感知范围并没有变化。感谢回答

use mid-360 to scan the ground

I integrated it with fast-planner, and when i used the mid 360, the point cloud cannot scan the ground .
I haved change the vertical_fov. But it didn't work.



            <param name="drone_id" value="$(arg drone_id)"/>
            <param name="quadrotor_name" value="quad_$(arg drone_id)"/>
            <param name="uav_num" value="$(arg uav_num_)"/>
            <param name="is_360lidar" value="1"/>
            <param name="sensing_horizon" value="15.0"/>
            <param name="sensing_rate" value="10.0"/>
            <param name="estimation_rate" value="10.0"/>
            <param name="polar_resolution" value="0.2"/>
            <param name="yaw_fov" value="360.0"/>
            <param name="vertical_fov" value="90.0"/>
            <param name="min_raylength" value="1.0"/>
            <param name="livox_linestep" value="1.4"/>
            <param name="curvature_limit" value="100.0"/>
            <param name="hash_cubesize" value="5.0"/>
            <param name="use_avia_pattern" value="0"/>
            <param name="use_vlp32_pattern" value="0"/>
            <param name="use_minicf_pattern" value="1"/>

            <param name="downsample_res" value="$(arg downsample_resolution_)"/>

            <param name="dynobj_enable" value="0"/>
            <param name="dynobject_size" value="0.8"/>
            <param name="dynobject_num" value="10"/>
            <param name="dyn_mode" value="0"/><!-- 0 for a=0, 1 for a=g, 2 for random walk -->
            <param name="dyn_velocity" value="1.0"/>

            <param name="use_uav_extra_model" value="$(arg use_uav_extra_model_)"/>

            <!-- collision parameter -->
            <param name="collisioncheck_enable" value="0"/>
            <param name="collision_range" value="0.3"/>
            <param name="output_pcd" value="0"/>
        </node>
    </group>`

How do i param it? thanks.
image

About mid360 simulation

Hello, I greatly appreciate your work on this article. During the testing process, I noticed that the simulation of mid365 LiDAR did not match the vertical field of view of real radar. How did this occur?
image
2B6736CC4505CC7A37331D4BE6F1BEA2

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.