Skip to content

Commit

Permalink
Integrates local planner. Still need to tune parameters, but it runs. (
Browse files Browse the repository at this point in the history
…#118)

* changing global planning docs and cleaning up random walk planner

* adding testing docs

* changing global planning docs and cleaning up random walk planner

* adding testing docs

* refactoring code for new interface

* adding conversions for new message types

* fixing build issues for new interfaces

* chaning logic to take the max voxzel size instead of assuming uniform

* cleaning up distance calculations

* making build changes for curr_location

* more build fixes

* more and more build fixes

* more and more build fixes

* asdf

* a;alala

* asdfallsdlfkn

* fixed build

* Do proper docker containers now with variable number of robots (#40)

* Updated dockerfile to copy simulation directly into docker image, updating docker compose to refer to images on server, updated documentation to reflect that you don't have to build the docker image and can just pull it

* Updating docker compose to refer to images on server, updated documentation to reflect that you don't have to build the docker image and can just pull it

* added environment info

* Proper docker compose now

* Add .gitignore for omni_pass.env file

* Update with Basti's instructions

* Update dockerfiles and docs

* Delete deprecated simulation/ folder

* use net=host

* oops net=host doesn't work with dynamic robots

* Fix ros2 with isaac sim. make isaac launch not by default with the main command

* Change isaac to use installed ros2 humble instead of built-in one

* Sadly: isaac sim REQUIRES network=host to launch from docker. Sadly, this means our robots need to also network=host and we must hardcode our docker compose

* Add ROS_LOCALHOST_ONLY=1; confirmed works through docker when network=host

* fix docker warnings

* Change path to use ros_ws under /root/AirStack/ros_ws

* Add stereo-image-proc, image-view

* Add isaacsim ros2 package, add entrypoint

* Change docker compose so that it just launches the containers with bash

* got ascent sitl working in isaacsim

* Updated, now works with with --scale and separate containers per robot

- Isaac can run headless in a container
- robots can run in separate containers, each with their own hostname and ROS_DOMAIN_ID
- all containers live on the private docker network, isolated from host
- Can connect to Isaac GUI via Omniverse Streaming client
- ROS communicates properly between all the containers
- connects successfully to nucleus

* reverted omni_pass

* Change the file to TEMPLATE so that the actual one isn't commited

* updated so guis work in docker

* Enable ssh into docker containers

* Add docs on network

* running mavros in isaacsim container, robot launch files moved to robot_bringup

* Update docs

* Delete deprecated central/folder, organize

---------

Co-authored-by: Sebastian Scherer <[email protected]>
Co-authored-by: John Keller <[email protected]>

* Aj/update docs (#45)

* Update docs move robot with video

* Update docs

* Add footer (#46)

* Add more docs

* welcome page, boilerplate (#47)

* welcome page, boilerplate

* changing global planning docs and cleaning up random walk planner

* adding service call

* finishing clean up of old map callback

* deleting irrelevant testing doc

* removing trivial_planner package for random walk and add xml launch file

* removing airstack_msgs dependency

* adding plan reception mode to behaviro tree

* buildable chanes

* working action based random walk

* working global plan toggle

* fixing read_parameter formatting

* adding ensemble planner

* first test of the new global planner format with random walk publishing multiple paths

* adding rad2deg and logging in random walk logic

* working random walk

* cleaning up junk

* Remove fluff from droan

* Connect disparity expansion to other core stack topics; works with gt depth image, doesn't work with stereo_image_proc

Also remove unused disparity conversion package (disparity_conv)

* Remove tf_prefix

* Clean up launch, start migrating to use nav_msgs/Path for global plan

* Remove deprecated traj mode client

* Progress

* Enable permalinks for headers

* Update to use relative path

* Add xml extensions

* Update comments

* Factor out parameters to config file; also clean up code

* Add expansion point cloud visualizer back

* Add missing marker publisher

* Fix bugs and topic connections

* Fix bugs and code cleanup

* Fix typos add clarity

* Add rviz for debug droan

* Update docs

* Rename core.rviz to robot.rviz

* Enable SITL extension automatically in docker image

* Remove node name override from launch files; instead let node names be in code

* Pass node names

* Refactor; nested nodes didn't work with subscribers, pass node ptr instead

* Publishes a local traj omg

* Set mavros use_sim_time at launch instead of with separate pane

* Manually set trajectory marker namespace to prevent accumulating explosion

* Add to global plan ICD sending feedback for ETA to waypoints

* Try make tmux extension auto refresh. didn't work

* Customize for debug

* Attempt fix and refactor trajectory collision checking

write a lot of helper functions
change input to be Trajectory, not airstack::msgs::TrajectoryXYZVYaw

* Clean up and make debugging clearer

* Update cpp standard to cpp17, add docstring to recommended extensions

* yay now the disparity graph collision markers are correct

* No more segfault

* Update

* Comment out main rviz for now

* Make lib shared

* idk what this does

* Remove dependency on missing global_planner_msgs

* Comment out 5 sec wait for mavros launch

* Reorder buttons

* Publish frustum from disparity expansion for debugging

* Successfully integrate droan with tyler's random walk planner

* Rename SEGMENT to ADD_SEGMENT

* Extract params to yaml

* Clean code

* Update rviz

---------

Co-authored-by: Tyler Harp <[email protected]>
Co-authored-by: Sebastian Scherer <[email protected]>
Co-authored-by: John Keller <[email protected]>
  • Loading branch information
4 people authored Nov 1, 2024
1 parent ea5984e commit 468237d
Show file tree
Hide file tree
Showing 89 changed files with 8,502 additions and 4,565 deletions.
38 changes: 19 additions & 19 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,31 @@
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/root/AirStack/ros_ws/install/vdb_mapping_interfaces/include/**",
"/root/AirStack/ros_ws/install/trajectory_library/include/**",
"/root/AirStack/ros_ws/install/mavros_interface/include/**",
"/root/AirStack/ros_ws/install/robot_interface/include/**",
"/root/AirStack/ros_ws/install/px4_msgs/include/**",
"/root/AirStack/ros_ws/install/mav_system_msgs/include/**",
"/root/AirStack/ros_ws/install/mav_state_machine_msgs/include/**",
"/root/AirStack/ros_ws/install/mav_planning_msgs/include/**",
"/root/AirStack/ros_ws/install/mav_msgs/include/**",
"/root/AirStack/ros_ws/install/disparity_map_representation/include/**",
"/root/AirStack/ros_ws/install/map_representation_interface/include/**",
"/root/AirStack/ros_ws/install/disparity_graph/include/**",
"/root/AirStack/ros_ws/install/behavior_tree/include/**",
"/root/AirStack/ros_ws/install/behavior_tree_msgs/include/**",
"/root/AirStack/ros_ws/install/airstack_common/include/**",
"/root/AirStack/ros_ws/install/airstack_msgs/include/**",
"${workspaceFolder}/ros_ws/install/vdb_mapping_interfaces/include/**",
"${workspaceFolder}/ros_ws/install/trajectory_library/include/**",
"${workspaceFolder}/ros_ws/install/mavros_interface/include/**",
"${workspaceFolder}/ros_ws/install/robot_interface/include/**",
"${workspaceFolder}/ros_ws/install/px4_msgs/include/**",
"${workspaceFolder}/ros_ws/install/mav_system_msgs/include/**",
"${workspaceFolder}/ros_ws/install/mav_state_machine_msgs/include/**",
"${workspaceFolder}/ros_ws/install/mav_planning_msgs/include/**",
"${workspaceFolder}/ros_ws/install/mav_msgs/include/**",
"${workspaceFolder}/ros_ws/install/disparity_map_representation/include/**",
"${workspaceFolder}/ros_ws/install/map_representation_interface/include/**",
"${workspaceFolder}/ros_ws/install/disparity_graph/include/**",
"${workspaceFolder}/ros_ws/install/behavior_tree/include/**",
"${workspaceFolder}/ros_ws/install/behavior_tree_msgs/include/**",
"${workspaceFolder}/ros_ws/install/airstack_common/include/**",
"${workspaceFolder}/ros_ws/install/airstack_msgs/include/**",
"${workspaceFolder}/ros_ws/src/**",
"/opt/ros/humble/include/**",
"/usr/include/**",
"/root/AirStack/ros_ws/src/**"
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++14"
"cppStandard": "c++17"
}
],
"version": 4
Expand Down
6 changes: 5 additions & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
"ms-iot.vscode-ros",
"ms-vscode-remote.remote-ssh",
"ms-python.python",
"ms-vscode-remote.remote-containers"
"ms-vscode-remote.remote-containers",
"redhat.vscode-xml",
"dotjoshjohnson.xml",
"ms-vscode.cmake-tools",
"cschlosser.doxdocgen"
]
}
3 changes: 2 additions & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
"version": "0.2.0",
"configurations": [
{
"name": "ROS2: Launch robot.launch.py",
"name": "ROS2: Launch robot.launch.xml",
"type": "ros",
"request": "launch",
// "preLaunchTask": "build ros_ws debug",
"target": "${workspaceFolder}/ros_ws/install/robot_bringup/share/robot_bringup/launch/robot.launch.xml",
}
]
Expand Down
6 changes: 4 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"**/install": true,
"**/log": true
},
"C_Cpp.errorSquiggles": "enabled",
// ISAAC SIM
"python.analysis.extraPaths": [
"~/.local/share/ov/pkg/isaac-sim-4.0.0/exts/omni.exporter.urdf",
Expand Down Expand Up @@ -820,8 +821,9 @@
"stop_token": "cpp",
"cfenv": "cpp",
"typeindex": "cpp",
"valarray": "cpp"
"valarray": "cpp",
"*.ipp": "cpp"
},
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 100 }",
"editor.formatOnSave": true
}
}
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"version": "2.0.0",
"tasks": [
{
"label": "build ros_ws",
"label": "build ros_ws debug",
"type": "shell",
"options": {
"cwd": "${workspaceFolder}/ros_ws"
Expand Down
3 changes: 3 additions & 0 deletions docker/Dockerfile.isaac-ros
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ RUN cd /tmp/ && \
# copy over the AscentAeroSystemsSITLPackage
COPY docker/isaac-sim/AscentAeroSystemsSITLPackage /AscentAeroSystemsSITLPackage

# the user.config.json file specifies to auto load the SITL extensions
COPY docker/isaac-sim/user.config.json /root/.local/share/ov/data/Kit/Isaac-Sim/4.1/user.config.json

COPY ros_ws/fastdds.xml /isaac-sim/fastdds.xml

# Cleanup. Prevent people accidentally doing git commits as root in Docker
Expand Down
2 changes: 1 addition & 1 deletion docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
services:
# ==============================================================================
isaac-sim:
image: &isaac-sim-image airlab-storage.andrew.cmu.edu:5001/shared/isaac-sim_ros-humble:v1.0.1
image: &isaac-sim-image airlab-storage.andrew.cmu.edu:5001/shared/isaac-sim_ros-humble:v1.0.2
build:
context: ../
dockerfile: docker/Dockerfile.isaac-ros
Expand Down
23 changes: 17 additions & 6 deletions docker/extras/drag_and_drop/ascent_sitl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,21 @@ windows:
- echo $AUTONOMY_STACK_PORT
- mavproxy.py --streamrate=100 --master tcp:127.0.0.1:$BASE_PORT --out udp:127.0.0.1:$ASCENT_SITL_PORT --out udp:127.0.0.1:$ISAAC_SIM_PORT --out udp:127.0.0.1:$AUTONOMY_STACK_PORT
- shell_command:
- sleep 5
# - sleep 5
- export ROS_DOMAIN_ID=$DOMAIN_ID
- ros2 launch mavros apm.launch fcu_url:="udp://127.0.0.1:$AUTONOMY_STACK_PORT@$MAVROS_LAUNCH_PORT" namespace:=$NAMESPACE/interface/mavros
- shell_command:
- sleep 7
- export ROS_DOMAIN_ID=$DOMAIN_ID
- ros2 param set $NAMESPACE/interface/mavros/mavros use_sim_time true
# - ros2 launch mavros apm.launch fcu_url:="udp://127.0.0.1:$AUTONOMY_STACK_PORT@$MAVROS_LAUNCH_PORT" namespace:=$NAMESPACE/interface/mavros --ros-args -p use_sim_time:=true
- >
ros2 run mavros mavros_node
--ros-args
-r __ns:=/$NAMESPACE/interface/mavros
-p fcu_url:="udp://127.0.0.1:$AUTONOMY_STACK_PORT@$MAVROS_LAUNCH_PORT"
-p tgt_system:=1
-p tgt_component:=1
-p fcu_protocol:=v2.0
--params-file $(ros2 pkg prefix mavros)/share/mavros/launch/apm_pluginlists.yaml
--params-file $(ros2 pkg prefix mavros)/share/mavros/launch/apm_config.yaml
-p use_sim_time:=true
# - shell_command:
# - sleep 7
# - export ROS_DOMAIN_ID=$DOMAIN_ID
# - ros2 param set $NAMESPACE/interface/mavros/mavros use_sim_time true
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,16 @@ def on_startup(self, ext_id):
ui.Spacer(height=5)
self.sessions_stack = ui.VStack()
#'''

self.sessions_dict = {}

self.play_listener = self.timeline.get_timeline_event_stream().create_subscription_to_pop_by_type(
int(omni.timeline.TimelineEventType.PLAY), self.refresh_tmux_sessions)
self.pause_listener = self.timeline.get_timeline_event_stream().create_subscription_to_pop_by_type(
int(omni.timeline.TimelineEventType.PAUSE), self.refresh_tmux_sessions)
self.stop_listener = self.timeline.get_timeline_event_stream().create_subscription_to_pop_by_type(
int(omni.timeline.TimelineEventType.STOP), self.refresh_tmux_sessions)

self.refresh_tmux_sessions()

'''
with self.window.frame:
Expand Down Expand Up @@ -291,4 +299,5 @@ def kill():
del self.sessions_dict[k]

def on_shutdown(self):
self.refresh_tmux_sessions()
print("[airlab.tmux_manager] Extension shutdown")
Loading

0 comments on commit 468237d

Please sign in to comment.