Git Product home page Git Product logo

px4-avoidance's Issues

Build issue related to yaml-cpp

local_planner fails to build with the following error

Errors     << local_planner:make /home/jalim/auterion_ws/logs/local_planner/build.make.000.log                                                                                                                                                                                                                                
/home/jalim/auterion_ws/devel/.private/local_planner/lib/liblocal_planner.so: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/jalim/auterion_ws/devel/.private/local_planner/lib/local_planner/local_planner_node] Error 1
make[1]: *** [CMakeFiles/local_planner_node.dir/all] Error 2
make: *** [all] Error 2
cd /home/jalim/auterion_ws/build/local_planner; catkin build --get-env local_planner | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -

This seems to be related to yaml-cpp used for parsing yaml files for the rviz environment. Is there a specific requirement for yaml-cpp?
I have tried building building yaml-cpp from source at the yaml-cpp repo as well as installing with ros-kinetic-yaml-*

Could it be more desirable to have this contained within the workspace by using something like yaml-cpp_catkin ?

R200 parameters for outdoor

Hi I am currently testing the avoidance pkg in an outdoor setup. I am using the R200 dvkit. I suspect that the camera is not tuned for outdoor operations. Do you have recommended R200 parameters for outdoor operations?
I am using the global planet in the master branch. It always reports that the goal position is occupied while it is actually not.

Thanks

bezier.h:132:12: error: return-statement with a value, in function returning 'void' [-fpermissive]

I am trying to build your node in ROS Melodic on Ubuntu 18.04 and it fails with:
/home/arek/catkin_ws/src/avoidance/global_planner/include/global_planner/bezier.h:132:12: error: return-statement with a value, in function returning 'void' [-fpermissive] return path;
Problematic line:
https://github.com/PX4/avoidance/blob/acebb50ba6d7d0cb8dc9a99aeddc7b9e8469485a/global_planner/include/global_planner/bezier.h#L132

I have pushed a fix just to build it but I assume it's not how the code is intended to work. I will try to push more commits if I will make the whole package work and test it.

runOdroid script global_planner

Hi people.

I am trying to run the runOdroid script from my host laptop to a Jetson TX2.

In the beginning of the scrip there is . ~/.bas_ros and when the scrip reach the lines to run the commands in separate tabs e.g. gnome-terminal --tab -e "ssh -t [email protected] 'sleep 0; . ~/.bash_ros; roscore; bash -i'" \

I get the error in the terminal bash: roscore: command not found.

My best guess is that it has to do with the line ". ~/.bas_ros"

Could some one help me :) thank you :)

Questions regarding planners

I've running avoidance simulations of both planners

I found that global planner works great and capable of real-time mapping and 3D path planning with rough scaled octomap and the path smoothing.
Also, planning may fail but it mostly keep drone from collisions
so the result in gazebo simulation is very desirable and satisfactory.

Whereas the local planner, It usually finds way in 2D, slowly progresses and often collide into trees or terrains and sometimes it goes around trees like forever due to it does not record previous point clouds
and computation in my desktop is also heavy (probably due to lots of visualization in RViz)

I wonder why only local planner is available for running on hardware such as Intel Aero RTF
and dev team focuses are in local planner, not the global planner

Thanks in advance.

cfg file does not take effect until clicking in rqt_reconfigure

As far as I can tell, the default parameters set in the global_planner_node.cfg file are completely ignored until the dynamicReconfigureCallback function is triggered by clicking in the rqt_reconfigure window. Specifically, since the CELL_SCALE is a "level 2" parameter, I have to actually click that specific parameter in rqt_reconfigure in order to latch my .cfg file's default value.

Is this expected behavior? It seems like it would make sense to trigger this callback immediately on launch so that the user's default params are latched in, instead of using the values set in the .h header files.

[Feature] Plug OMPL to Avoidance to open the possibility of using other motion planning algorithms

OMPL (Open Motion Planning Library) is a library which contains most of the state-of-the-art motion and path planning algorithms. It's already used in various robotics frameworks, including MoveIt!. Would be interesting to explore the possibility of integrate it with the Avoidance API in order to add other alternatives to the global planner.
Note also that the license is permissive and should set us good to go on the integration.
I am open to discuss this on the next avoidance call.
@mrivi, @baumanta, @nicovanduijn what do you think?

OA: in manual mode ("collision avoidance")

Goal: in manual mode obstacle avoidance is used to avoid crashing into obstacles.
Intended behavior: not full avoidance of obstacle is needed, main goal is to avoid a crash.

  • Ideas:
    1. just stop when flight path into obstacle is detected. Might feel bad to the user because drone does not move even though he provides stick input
    1. bounce back (idea by Jonathan): when you push sticks forward into an obstacle bounce back slightly (like the browser on an iphone when you scroll further up at the top of a page)

Use case: inspection

make px4_sitl_default gazebo fails to build

Hello,
I'm a beginner in px4, ROS, and Gazebo. My target is to deploy this program on jetson tx2. But before that, I want to try the offboard simulator on my desktop.
Followed the steps mentioned in this repository and installed all the dependencies.
OS: Ubuntu 16.04
ROS-Kinetic
Gazebo 9
After I do "make px4_sitl_default gazebo", it opens a new Gazebo window and freezes making the program at "EKF commencing GPS fusion". I got no idea where should I start from as I can't run the program unless I've built it successfully. Am I supposed to create obstacles in the Gazebo simulator myself and provide the file path to the program? Thanks in advance.

screenshot from 2019-02-12 22-01-40

screenshot from 2019-02-12 21-49-47

Global_planner pixhawk estimated pose

Dear people.

I am on the way thinking about implementing the global planner in real.

I can not figure out where in the mavros launch file is specified the transformation between NED->ENU conversion.

In other words, I would like to set up in my own mavros launch file the coordinates NED-Pixhawk aligned or transformed with the coordinates ENU-ROS.

Any help I appreciate it.

Thank you.

Problems in connections with Gazebo Simulator

As I follow instruction on this repo.
I came to find some problems with connections.

  1. Problem with the connection with PX4 SITL with Gazebo Simulation
    It was very easy to miss the problem that no error or warning messages are given.
    After information message shown,
    INFO [simulator] Waiting for simulator to connect on TCP port 4560
    and no update since
    unlike basic px4 Gazebo simulation
    make px4_sitl_default gazebo
    It does find connection with Gazebo right away and does work with additional mavros launch.
INFO  [simulator] Waiting for simulator to connect on TCP port 4560
INFO  [simulator] Simulator connected on TCP port 4560.
  1. Problem with the connection with MAVROS.
    I think it's cause of root is problem 1,
    MAVROS diagnostics report as it is not connected to FCU, thus nothing can be done.

Hope this could be solved soon.
Thanks.

Unable to find PX4

I'm getting the following error while trying to launch the simulation.
$ roslaunch global_planner global_planner_sitl_mavros.launch

... logging to /home/rajat/.ros/log/5e6ec4d2-daa4-11e8-aa40-4cbb58b223ff/roslaunch-rajat-Vostro-3449-6976.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 306, in main
    p.start()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
    self._start_infrastructure()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 217, in _start_infrastructure
    self._load_config()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 132, in _load_config
    roslaunch_strs=self.roslaunch_strs, verbose=self.verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/config.py", line 451, in load_config_default
    loader.load(f, config, verbose=verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 749, in load
    self._load_launch(launch, ros_config, is_core=core, filename=filename, argv=argv, verbose=verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 721, in _load_launch
    self._recurse_load(ros_config, launch.childNodes, self.root_context, None, is_core, verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 685, in _recurse_load
    val = self._include_tag(tag, context, ros_config, default_machine, is_core, verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 627, in _include_tag
    default_machine, is_core, verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 685, in _recurse_load
    val = self._include_tag(tag, context, ros_config, default_machine, is_core, verbose)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 589, in _include_tag
    inc_filename = self.resolve_args(tag.attributes['file'].value, context)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 183, in resolve_args
    return substitution_args.resolve_args(args, context=context.resolve_dict, resolve_anon=self.resolve_anon)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 370, in resolve_args
    resolved = _resolve_args(resolved, context, resolve_anon, commands)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 383, in _resolve_args
    resolved = commands[command](resolved, a, args, context)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 151, in _find
    source_path_to_packages=source_path_to_packages)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 197, in _find_executable
    full_path = _get_executable_path(rp.get_path(args[0]), path)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 203, in get_path
    raise ResourceNotFound(name, ros_paths=self._ros_paths)
ResourceNotFound: px4
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/rajat/catkin_ws/src/avoidance/global_planner
ROS path [2]=/home/rajat/catkin_ws/src/avoidance/local_planner
ROS path [3]=/opt/ros/kinetic/share

The simulation works when I run make posix_sitl_default gazebo

Unable to build local_planner

Build of `local_planner' fails due to the following error

In file included from /home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node.cpp:1:0:
/home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node.h:18:48: fatal error: mavros_msgs/CompanionProcessStatus.h: No such file or directory

The entire output is as follows

$ catkin build -w ~/catkin_ws
-----------------------------------------------------------------
Profile:                     default
Extending:             [env] /opt/ros/kinetic
Workspace:                   /home/docker-rajat/catkin_ws
-----------------------------------------------------------------
Source Space:       [exists] /home/docker-rajat/catkin_ws/src
Log Space:         [missing] /home/docker-rajat/catkin_ws/logs
Build Space:        [exists] /home/docker-rajat/catkin_ws/build
Devel Space:        [exists] /home/docker-rajat/catkin_ws/devel
Install Space:      [unused] /home/docker-rajat/catkin_ws/install
DESTDIR:            [unused] None
-----------------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
-----------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
-----------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
-----------------------------------------------------------------
Workspace configuration appears valid.

NOTE: Forcing CMake to run for each package.
-----------------------------------------------------------------
[build] Found '2' packages in 0.0 seconds.                                                                                                    
[build] Updating package table.                                                                                                               
Starting  >>> catkin_tools_prebuild                                                                                                           
Finished  <<< catkin_tools_prebuild                [ 7.0 seconds ]                                                                            
Starting  >>> global_planner                                                                                                                  
Starting  >>> local_planner                                                                                                                   
______________________________________________________________________________________________________________________________________________
Warnings   << local_planner:cmake /home/docker-rajat/catkin_ws/logs/local_planner/build.cmake.000.log                                         
** WARNING ** io features related to openni2 will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
** WARNING ** visualization features related to openni2 will be disabled
cd /home/docker-rajat/catkin_ws/build/local_planner; catkin build --get-env local_planner | catkin env -si  /usr/bin/cmake /home/docker-rajat/catkin_ws/src/avoidance/local_planner --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/docker-rajat/catkin_ws/devel/.private/local_planner -DCMAKE_INSTALL_PREFIX=/home/docker-rajat/catkin_ws/install; cd -
..............................................................................................................................................
______________________________________________________________________________________________________________________________________________
Warnings   << global_planner:cmake /home/docker-rajat/catkin_ws/logs/global_planner/build.cmake.000.log                                       
** WARNING ** io features related to openni2 will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
** WARNING ** visualization features related to openni2 will be disabled
cd /home/docker-rajat/catkin_ws/build/global_planner; catkin build --get-env global_planner | catkin env -si  /usr/bin/cmake /home/docker-rajat/catkin_ws/src/avoidance/global_planner --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/docker-rajat/catkin_ws/devel/.private/global_planner -DCMAKE_INSTALL_PREFIX=/home/docker-rajat/catkin_ws/install; cd -
..............................................................................................................................................
Finished  <<< global_planner                       [ 11 minutes and 14.2 seconds ]                                                            
______________________________________________________________________________________________________________________________________________
Errors     << local_planner:make /home/docker-rajat/catkin_ws/logs/local_planner/build.make.000.log                                           
In file included from /home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node.cpp:1:0:
/home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node.h:18:48: fatal error: mavros_msgs/CompanionProcessStatus.h: No such file or directory
In file included from /home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node_main.cpp:1:0:
/home/docker-rajat/catkin_ws/src/avoidance/local_planner/src/nodes/local_planner_node.h:18:48: fatal error: mavros_msgs/CompanionProcessStatus.h: No such file or directory
compilation terminated.
compilation terminated.
make[2]: *** [CMakeFiles/local_planner_node.dir/src/nodes/local_planner_node.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/local_planner_node.dir/src/nodes/local_planner_node_main.cpp.o] Error 1
make[1]: *** [CMakeFiles/local_planner_node.dir/all] Error 2
make: *** [all] Error 2
cd /home/docker-rajat/catkin_ws/build/local_planner; catkin build --get-env local_planner | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
..............................................................................................................................................
Failed     << local_planner:make                   [ Exited with code 2 ]                                                                     
Failed    <<< local_planner                        [ 11 minutes and 49.5 seconds ]                                                            
[build] Summary: 2 of 3 packages succeeded.                                                                                                   
[build]   Ignored:   None.                                                                                                                    
[build]   Warnings:  2 packages succeeded with warnings.                                                                                      
[build]   Abandoned: None.                                                                                                                    
[build]   Failed:    1 packages failed.                                                                                                       
[build] Runtime: 11 minutes and 58.2 seconds total.                                                                                           
[build] Note: Workspace packages have changed, please re-source setup files to use them.

Operating System is Ubuntu 16.04 with ROS Kinetic

Mavros version: Version: 0.27.0-0xenial-20181116-184226-0800
Mavlink version: Version: 2018.11.11-0xenial-20181113-004213-0800

Fast take-off in mission mode

During our tests we found that the mission take-off is violently fast when the avoidance is running. This may have gone unnoticed for a long time because we usually take off in position mode before starting the mission.

Sadly, we didn't have logging from boot enabled, so it is not completely captured in the logs below. But we can see that without the avoidance, the beginning of the log still shows the end of a smooth ramp in the z-setpoint, while the log with the enabled OA starts at a 3m altitude (to which it got presumably through a step)

No avoidance:
bokeh_plot 2

Avoidance enabled:
bokeh_plot 1

local_planner_stereo.launch problem

I have made avoidance simulation work on the Ubuntu 18.04 (everything worked fine but I had to build octomap_mapping and octomap_ros).

The only problem is that I cannot make local_planner_stereo.launch to start, this may be a problem:

[FATAL] []: ODOM: invalid body frame orientation "frd"
[ WARN] []: MSG to TF: Quaternion Not Properly Normalized
[ INFO] []:  Pointcloud timeout: Hovering at current position 

and

The strange part is that local_planner_depth-camera.lauch and global_planner work perfectly. Do you know what's the problem?

Whole log: gist

Timeouts

I get timeouts messages Pointcloud timeout , no cloud received on topic (Hovering at current position) both in the simulation and on hardware.

I have already spoken offline with @baumanta. As she suspected, the timeout happens because the transformation between the camera frame and local origin is not available.

Opening a issue so that we track.

Global planner yaw goal

As far as I can tell, when publishing to the /move_base_simple/goal topic, the global planner completely ignores the orientation of the PoseStamped object. Is there a way to set the orientation of the drone in the global planner?

Tests fail to build on master`

I'm guessing since 94f5c03 the tests fail to build.

/home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp: In member function ‘virtual void PlannerFunctions_testDirectionTree_Test::TestBody()’:
/home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:617:66: error: invalid initialization of reference of type ‘avoidance::PolarPoint&’ from expression of type ‘Eigen::Vector3f {aka Eigen::Matrix<float, 3, 1>}’
   bool res = getDirectionFromTree(p, path_node_positions, postion);
                                                                  ^
In file included from /home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:4:0:
/home/nico/catkin_ws/src/avoidance/local_planner/test/../src/nodes/planner_functions.h:73:6: note: in passing argument 1 of ‘bool avoidance::getDirectionFromTree(avoidance::PolarPoint&, const std::vector<geometry_msgs::Point_<std::allocator<void> > >&, const Vector3f&)’
 bool getDirectionFromTree(
      ^
/home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:618:69: error: invalid initialization of reference of type ‘avoidance::PolarPoint&’ from expression of type ‘Eigen::Vector3f {aka Eigen::Matrix<float, 3, 1>}’
   bool res1 = getDirectionFromTree(p1, path_node_positions, postion1);
                                                                     ^
In file included from /home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:4:0:
/home/nico/catkin_ws/src/avoidance/local_planner/test/../src/nodes/planner_functions.h:73:6: note: in passing argument 1 of ‘bool avoidance::getDirectionFromTree(avoidance::PolarPoint&, const std::vector<geometry_msgs::Point_<std::allocator<void> > >&, const Vector3f&)’
 bool getDirectionFromTree(
      ^
/home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:619:69: error: invalid initialization of reference of type ‘avoidance::PolarPoint&’ from expression of type ‘Eigen::Vector3f {aka Eigen::Matrix<float, 3, 1>}’
   bool res2 = getDirectionFromTree(p2, path_node_positions, postion2);
                                                                     ^
In file included from /home/nico/catkin_ws/src/avoidance/local_planner/test/test_planner_functions.cpp:4:0:
/home/nico/catkin_ws/src/avoidance/local_planner/test/../src/nodes/planner_functions.h:73:6: note: in passing argument 1 of ‘bool avoidance::getDirectionFromTree(avoidance::PolarPoint&, const std::vector<geometry_msgs::Point_<std::allocator<void> > >&, const Vector3f&)’
 bool getDirectionFromTree(
      ^
CMakeFiles/local_planner-test.dir/build.make:158: recipe for target 'CMakeFiles/local_planner-test.dir/test/test_planner_functions.cpp.o' failed

Not sure why travis doesn't see this problem

local_planner_stereo.launch fails to run

Directly attempting to run this launch file resulted in an error in looking up the px4 launch file, which makes sense because there is no px4.launch file in the PX4 firmware folder.

So I figure the launch files are probably just a little out of date and I need to update some directories. I change it to look for px4.launch in mavros, where it does find it, but it then complains about multiple instances of mavros running. Indeed, px4.launch does start its own mavros node, so I tried to consolidate all of the launch files into a single file to try running the software
local_planner_stereo.txt.

I believe this has the correct configuration, but I now run into strange errors from the parser:

Error [parser.cc:689] Unable to find uri[model://iris_depth_camera]

<gravity>0 0 -9.8</gravity>

<magnetic_field>6e-06 2.3e-05 -4.2e-05</magnetic_field>

<atmosphere type='adiabatic'/>

<physics name='default_physics' default='0' type='ode'>

  <max_step_size>0.001</max_step_size>

  <real_time_factor>1</real_time_factor>

  <real_time_update_rate>1000</real_time_update_rate>

</physics>

<scene>

  <ambient>0.4 0.4 0.4 1</ambient>

  <background>0.7 0.7 0.7 1</background>

  <shadows>1</shadows>

</scene>

[INFO] [1536011813.196405, 10.104000]: Spawn status: SpawnModel: Entity pushed to spawn queue, but spawn service timed out waiting for entity to appear in simulation under the name iris

[spawn_model-11] process has finished cleanly

log file: /home/chuples/.ros/log/1c59b90e-afc4-11e8-a497-dcfe07d69cab/spawn_model-11*.log

^C[gazebo_gui-10] killing on exit

[gazebo-9] killing on exit

[local_planner_node-6] killing on exit

[rqt_reconfigure-7] killing on exit

[rviz-4] killing on exit

[mavros-8] killing on exit

[stereo/stereo_image_proc-5] killing on exit

[tf_90_deg-2] killing on exit

[tf_depth_camera-3] killing on exit

Warning: Invalid argument passed to canTransform argument source_frame in tf2 frame_ids cannot be empty

     at line 126 in /tmp/binarydeb/ros-kinetic-tf2-0.5.17/src/buffer_core.cpp

[local_planner_node-6] escalating to SIGTERM

[gazebo-9] escalating to SIGTERM

[rosout-1] killing on exit

[master] killing on exit

shutting down processing monitor...

... shutting down processing monitor complete

Save bag files on the host in the docker production setup

As noted in #48, the bags are saved inside the docker container running the avoidance node and, therefore, are lost whenever the container is destroyed.

Find a way to keep those bags out of the containers (by mounting their containing folder as a volume, so that they are kept on the host).

Algorithm Selection

Hi,

The PX4/avoidance uses the 3DVFH+ algorithm for obstacle avoidance while navigating.
This algorithm is based on a octomap (occupancy grid - octree), which is widely used in mapping, mainly because of its simplicity and low memory storage.

But recently the Voxblox algorithm for obstacle avoidance have been published and released with open-source ROS implementation.
This algorithm is based on Signed Distance Field (SDF) and is shown that generating this SDF is faster than constructing the octree, and then navigation algorithm are easier to do on SDF than on octree.

What do you think? Why did you choose 3DVFH+ instead of Voxblox?

Many thanks,
Alexandre

problem with docker git

submodule update fails for me in docker for libuavcan with

Unable to checkout 'e1c9a4f5064a336295125da25c0542a5cd601dd7' in submodule path 'src/modules/uavcan/libuavcan'

looks like git version issue.

if I add this

# Install latest git to avoid 
# `Unable to checkout 'e1c9a4f5064a336295125da25c0542a5cd601dd7' in submodule path 'src/modules/uavcan/libuavcan'`
RUN apt-get install -y software-properties-common && \
    add-apt-repository ppa:git-core/ppa && \
    apt-get update && \
    apt-get install -y git

into dockerfile before checking out Firmware it works.

global_planer

Dear people

I have few questions about the global_planner

I mention them here 😊

1.- I guess that for mapping a SLAM is used, right? Just wondering what type of SLAM is used or a reference to the article would be great 😊

2.- What kind of path planning method is used?

3.- And how about the control control strategy, is a PID control strategy?

Thank you and wishing all the good.

Fix deployment scripts

Following a debugging session with @SaliniVenate, a few points need to be fixed in the deployment scripts:

  • tty:true seems to cause log issues.
  • The run.sh output for "prod-debug" should mention that there should be one terminal for the VPN client and one for ROS
  • The run.sh output was showing the wrong ip for the vpn route (172.20.255.255 instead of 172.18.255.255 for @SaliniVenate)

problems on run the simulation

When I run roslaunch local_planner local_planner_stereo.launch, there will be a problem

gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -e ode /home/h/catkin_ws/src/avoidance/local_planner/../sim/worlds/simple_obstacle.world.

but when I change the world to empty.world of PX4 Firmware, no error.
Is it because of the version of gazebo or gazebo_ros_packages different ?
Thanks in advance.

Memory issues: check dynamic data structures

While looking through the code I came accross https://github.com/PX4/avoidance/blob/master/local_planner/src/nodes/local_planner.cpp#L208 and https://github.com/PX4/avoidance/blob/master/local_planner/src/nodes/local_planner_node.cpp#L894.
Both instances increase an std::vector at each iteration but the size is not bounded, and nowhere elements are removed. This means the process will run out of memory when running long enough (it will take a long time though).

I suggest to check all dynamic data structures used in the entire project, as these 2 instances were the only ones that I checked.

Can't start the gazebo launch

Dear author,
Thank you for your sharing firstly, however, When I start the launch "roslaunch global_planner global_planner_sitl_mavros.launch ", I got an error, it tells me that failed like the following picture.
screenshot 2018-12-12 19 46 03

Do you know how to deal with it.
And what is more, Can I use the gazebo groundtruth to replace gps so that I can simulator the indoor situation?
I am looking for your answer, Thank you very much!

Integrate demo changes into master

Some lessons have been learned from the local_planner demo. A few values were hard-coded for the sake of the demo, and should be merged into master.

Refactor the demo branch and merge what needs to be kept into master.

NOTE: this issue is meant to address PR #10.

Readme suggestions

On quick scan I think I could use this readme to set up avoidance on simulation, but I doubt it would be possible to use it for working with real hardware.

Some possible improvements:

  1. There is no index/TOC for the contents on github, so you have to read the whole contents to find out what is in the doc. Either add a note in introduction explaining what is covered (setting up the planners in simulation and on hardware - with links) or provide a TOC (which is what I would do).
  2. Explain the difference between the local and global planner both in terms of what they do (algorithm) and what they should be used for. @baumanta provided starting point text for this in another issue:

    the local planner works only with the information it currently gets from the sensors and plans a path that is around a meter long. When the next set of information come in it plans a new piece of the path. The global planner, on the other hand, build a map of the environment. It gathers all the information ever received and then plans a path that reaches to the goal. This happens at a much lower frequency than in the local_planner. Also the global planner is much more costly on the computational side.
    And yes, the collision avoidance works only with the local planner. The local planner internally build a histogram where the free and blocked cells are marked. This is then compressed into 1D to serve as a laser scan emulation. The global planner does not use such a histogram.

  3. The running on hardware docs should:
    • cover local_planner.
    • Explain minimal hardware dependencies - ie what camera or "class of camera" do you need? How do you attach it and hook it up to ROS. How must it be mounted. Cover for both types of planners and list the actual cameras used for testing this.
  4. You refer to the rqt_reconfigure GUI - but it isn't covered elsewhere and nowhere do you explain what it is for (generally), how you start it, where it is located, what software delivers it (ie is it part of this repo?), and what each of the settings are for - e.g. "send_obstacles_fcu"
    • This should have its own section or possibly document that is linked to.

docker-compose installation instructions should be updated

According to the readme in the docker folder, the docker-compose installation is instructed to be done as

apt install docker-compose

However, the docker-compose installed using apt is 1.8.1 which is outdated.
This produces an error as the docker-compose.yaml uses version: '3' which is not compatible with 1.8.1

A better approach is to install the docker-compose using the instructions provided here

Launch failing on 16.04 machine

@vilhjalmur89 The launch is failing for me with this error message:

[INFO] [WallTime: 1470245012.383872] [0.000000] Calling service /gazebo/spawn_sdf_model
[INFO] [WallTime: 1470245012.432271] [786.962000] Spawn status: SpawnModel: Model pushed to spawn queue, but spawn service timed out waiting for model to appear in simulation under the name iris_depth_camera
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No space left on device
QFileSystemWatcher: failed to add paths: /home/pixhawk/.gazebo/models
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No space left on device
QFileSystemWatcher: failed to add paths: /home/pixhawk/catkin_ws/src/Firmware/Tools/sitl_gazebo/models
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No space left on device
QFileSystemWatcher: failed to add paths: /home/pixhawk/catkin_ws/src/detection/models
[spawn_model-8] process has finished cleanly

[FEATURE] dis-/enable offboard control

Hey,

would be nice to have some handshake to control the drone with avoidance for a specific manner and to get back the offboard control when i need it.

i will do it with a multiplexer node for the meantime.

best regards
tobi

Simulation

I am trying to run local planner on iris drone with r200 camera. I have changed the point cloud topic and it shows it in rviz but it does not move to the goal. If I give the goal through rviz, the goal's coordinates are shown on terminal but drone doesn't move

Docker demo fails to build

docker demo fails to build using docker-compose up

 ---> Running in fe0c65ad0217
Executing: /tmp/tmp.qUUyo5HYwi/gpg.1.sh --keyserver
hkp://ha.pool.sks-keyservers.net:80
--recv-key
421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: requesting key B01FA116 from hkp server ha.pool.sks-keyservers.net
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error
ERROR: Service 'ubuntu-avoidance' failed to build: The command '/bin/sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list &&     apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 &&     apt-get update' returned a non-zero code: 2

README update

PR #51 removes AurelienRoy gazebo models. The README file needs to be updated accordingly

Documentation

Hi
I want to use this package with different cameras (other than realsense) and I want to be able to have full control on parameters and topics, however I cant find proper documnetation about the nature of the parameters and topics.
Can someone help :)

Error when running "rosrun mavros mavsafety arm"

As the title says, when I run this command, something goes wrong.The error message is as follows

Traceback (most recent call last):
File "/opt/ros/kinetic/lib/mavros/mavsafety", line 18, in
from mavros import command
File "/opt/ros/kinetic/lib/python2.7/dist-packages/mavros/command.py", line 23, in
from mavros_msgs.srv import CommandLong, CommandInt, CommandBool, CommandHome, CommandTOL, CommandTriggerControl, CommandTriggerInterval
ImportError: cannot import name CommandTriggerInterval

The operating system I am using is ubuntu16.04."rosrun mavros mavsys mode -c OFFBOARD" can execute successfully.The simulation interface can also display normally.

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.