BCLab-UNM / SC2

Swarmathon Team Code for the NASA Space Challenge 2 Competition
MIT License
2 stars 0 forks source link

Obstacle package, node & messages #32

Closed Carter90 closed 4 years ago

Carter90 commented 4 years ago

~~Still in progress, Currently tracking down an obstacle.msg import error

31

For now please review the logic outline~~

Ready

Carter90 commented 4 years ago

@baelinor should now work for rudimentary testing, tuning and clean up still in progress.

My ~workflow

#make sure to compile 
# open lots of terminals and source in each
source ./devel/setup.bash
#run sim, @NOTE: I do run it differently for my system
./srcp2-competitors/docker/scripts/launch/roslaunch_docker --run-round 1 

#runs the odom, obstacle, minicore, & driver nodes
roslaunch ./launch/scoot.launch "name:=scout_1"

#I don't use gazebo to see, this will open a camera view from the left camera
rosrun image_view image_view image:=/scout_1/camera/left/image_raw

# I suggest using the teleop to get fine motion to position obstacles
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/scout_1/skid_cmd_vel

# echo out the obstacle being published / tested
rostopic echo /scout_1/obstacle

I suggest having the message file open for reference SC2/src/obstacle/msg/Obstacles.msg

Carter90 commented 4 years ago

Fairly happy with it for now, should be enough for Bug0(as I understand it) and for correlated random walk. Will need to make changes to the driver for these messages (separate branch/pull)

When testing I would recommend a setup like this, with above comment commands running image

Carter90 commented 4 years ago

All of the conditions could be true or none of them could be true. It is up to the behavior to decide what obstacles it cares about and uses the bitwise operators to determine that in driver.

baelinor commented 4 years ago

So if say the left and right are true then you want the following operation; obstacles.PATH_IS_CLEAR | obstacles.LIDAR_RIGHT | obstacles.LIDAR_LEFT

assuming that is correct and the >/< signs are the right direction for left/right by reading through it makes sense.

Carter90 commented 4 years ago

Yeah if something was within both left and right warning_distance you would get PATH_IS_CLEAR | LIDAR_LEFT | LIDAR_RIGHT so 0 | 1 | 2 == 3
msg = 3 mask = 15

If something would physically block the forward movement of the rover within safe_distance you would get PATH_IS_CLEAR | LIDAR_BLOCK == 0|8 msg = 8 mask = 15

Carter90 commented 4 years ago

Cool, do you want to test it with the instructions and suggested layout above?

baelinor commented 4 years ago

When I have some time, I can test it but it won't be till later. If you want a quicker response you might see if someone else is available. I think as long as anyone seconds it working is fine.

abbypribis commented 4 years ago

Looks good, logic sound - runs on my machine.