Git Product home page Git Product logo

ros_x_habitat's Introduction

ros_x_habitat

A ROS package to bridge AI Habitat with the ROS ecosystem.

ros_x_habitat_trimmed.mp4

Outline

  1. Motivation
  2. System Architecture
  3. Installation
  4. Examples
  5. Cite Our Work
  6. License
  7. Acknowledgments
  8. References

Motivation

The package allows roboticists to

  • Navigate an AI Habitat agent within photorealistic scenes simulated by Habitat Sim through ROS;
  • Connecting a ROS-based planner with Habitat Sim;
  • Connecting an AI Habitat agent with a ROS-bridged simulator (Gazebo for example) through ROS.
  • Leverage Habitat Sim's photorealistic and physically-realistic simulation capability through ROS.

System Architecture

ros_x_habitat exists as a collection of ROS nodes, topics and services. For simplicity, we have omitted components not essential to the interface's operation:

Installation

  1. Install Ubuntu 20.04 + ROS Noetic.
  2. Install Anaconda and create a conda environment for this project.
    conda create -n rosxhab python=3.6.13 cmake=3.14.0
    conda activate rosxhab
    pip install --upgrade pip
    
  3. Install Pytorch 1.10.2:
    # if you have an NVIDIA GPU + driver properly installed, install CUDA-compiled torch:
    pip install torch==1.10.2+cu111 -f https://download.pytorch.org/whl/cu111/torch_stable.html
    # otherwise, install the CPU-compiled torch:
    pip install torch==1.10.2+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html
    
  4. Install other dependent packages:
    pip install -r requirements.txt
    
  5. Install Habitat Sim version 0.2.0.
    • Here we show how to install it from conda in the environment you just created:
      cd <path to Habitat Sim's root directory>
      conda install habitat-sim=0.2.0 withbullet -c conda-forge -c aihabitat
      
    • If the above conda install for some reasons returns an error, you can download the .tar.gz file and install it locally:
      conda install --use-local linux-64_habitat-sim-0.2.0-py3.6_bullet_linux_bfafd7934df465d79d807e4698659e2c20daf57d.tar.bz2
      
    • If installing from conda still doesn't work, you can also try building from source with Bullet Physics and CUDA support (if you have an NVIDIA card).
  6. Install Habitat Lab version 0.2.0 along with habitat-baselines in the same conda environment.
    git clone --branch stable https://github.com/facebookresearch/habitat-lab.git
    cd habitat-lab
    git reset --hard adf90
    pip install -r requirements.txt
    python setup.py develop --all # install habitat and habitat_baselines
    
  7. Install the following ROS packages:
    • ros-noetic-depthimage-to-laserscan
    • ros-noetic-laser-scan-matcher
    • ros-noetic-rtabmap-ros
    • ros-noetic-hector-slam
    • ros-noetic-joy
    • ros-noetic-turtlebot3-gazebo
    • ros-noetic-turtlebot3-bringup
    • ros-noetic-turtlebot3-navigation
  8. Clone the repo to the src/ directory under your catkin workspace.
  9. Compile the package by calling catkin_make.

Examples

Here we outline steps to reproduce experiments from our paper.

Environment Setup

To set up your bash environment before you run any experiment, do the following:

  1. Activate your conda environment (if you are running any script/node from this codebase).
  2. Export the repo's directory to $PYTHONPATH:
    export PYTHONPATH=$PYTHONPATH:<path to the root directory of this repo>
    
    In fact for convenience, you can create a command in your $HOME/.bashrc:
    alias erosxhab="export PYTHONPATH=$PYTHONPATH:<path to the root directory of this repo>"
    
  3. Source ROS-related environment variables. Similarly we can create a command to do this:
    alias sros="source /opt/ros/noetic/setup.bash && source <path to catkin_ws/devel>/setup.sh"
    

Navigating Habitat Agent in Habitat Sim without ROS (+/-Physics, -ROS)

We can attempt to reproduce experiments from the Habitat v1 paper by evaluating a Habitat agent's performance in a MatterPort3D test scenario. Note that unlike what the authors did in the paper, we used the following experimental configurations:

  • Agents: Habitat v2's RGBD agent since the v1 agents are no longer compatible with Habitat v2.
  • Test episodes and scenes: MatterPort3D test episodes only. To get episode definitions, download from here; to download the MP3D scene assets, please follow instructions under Section "Dataset Download" from here. Note that when using their download script (download_mp.py), use argument --task_data habitat so you download just the subset we need.
  • Also we evaluated the agent in physics-enabled Habitat Sim v2.

To run an evaluation, follow these steps:

  1. Create directory data/ under the project's root directory. Then create the following directories:
    • data/checkpoints/v2/,
    • data/datasets/pointnav/mp3d/v1/,
    • data/objects/,
    • data/scene_datasets/mp3d/.
  2. Download default.physics_config.json and place it under data/.
  3. Extract the v2 agents (.pth files) to data/checkpoints/v2/. Extract the MP3D episode definitions to data/datasets/pointnav/mp3d/v1/ (then under v1/ you should see directory test/, train/, etc). Extract the MP3D scene files to data/scene_datasets/mp3d/.
  4. Select an experiment configuration file from configs/. Our configurations are coded by numbers:
    • Setting 2: -Physics, -ROS;
    • Setting 4: +Physics, -ROS.
  5. Select from seeds/ a seed file or create one of your own for your experiment. The seed is used for initializing the Habitat agent.
  6. Run the following command to evaluate the agent over the test episodes while producing top-down maps and box plots to visualize metrics:
    python src/scripts/eval_and_vis_habitat.py \
    --input-type rgbd \
    --model-path data/checkpoints/v2/gibson-rgbd-best.pth \
    --task-config <path to config file> \
    --episode-id <ID of last episode evaluated; -1 to evaluate from start> \
    --seed-file-path <path to seed file> \
    --log-dir <path to dir storing evaluation logs> \
    --make-maps \
    --map-dir <path to dir storing top-down maps> \
    --make-plots \
    --plot-dir <path to dir storing metric plots>
    

Navigating Habitat Agent in Habitat Sim with ROS (+/-Physics, +ROS)

Under this mode we run a Habitat Agent still inside Habitat Sim but through our interface.

  1. Select an experiment configuration file from configs/. Our configurations are coded by numbers:
    • Setting 3: -Physics, +ROS;
    • Setting 5: +Physics, +ROS.
  2. Select a seed file (as above).
  3. Run:
    python src/scripts/eval_habitat_ros.py \
    --input-type rgbd \
    --model-path data/checkpoints/v2/gibson-rgbd-best.pth \
    --task-config configs/setting_5_configs/pointnav_rgbd-mp3d_with_physics.yaml \
    --episode-id <ID of last episode evaluated; -1 to evaluate from start> \
    --seed-file-path <seed file path> \
    --log-dir= <log dir path>
    

Navigating Habitat Agent in Gazebo

Here we demonstrate steps to posit a Habitat agent embodied on a TurtleBot in a Gazebo-simulated environment, and render sensor data with RViz.

  1. Define the model for the TurtleBot (here we use "Waffle"):
    export TURTLEBOT3_MODEL="waffle" 
    
  2. Launch Gazebo and RViz:
    roslaunch turtlebot3_gazebo turtlebot3_house.launch
    roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch 
    
  3. Launch the agent node:
    python src/nodes/habitat_agent_node.py \
    --node-name agent_node \
    --input-type rgbd \
    --model-path data/checkpoints/v2/gibson-rgbd-best.pth 
    
    Then reset the agent in a separate window:
    rosservice call /ros_x_habitat/agent_node/reset_agent "{reset: 0, seed: 0}" 
    
  4. Launch the converter nodes:
    python src/nodes/habitat_agent_to_gazebo.py
    python src/nodes/gazebo_to_habitat_agent.py \
    --pointgoal-location <coordinates>
    
  5. In RViz, subscribe to topic /camera/depth/image_raw and /camera/rgb/image_raw to render observations from the RGB and the depth sensor.

Navigating ROS Agent in Habitat Sim

Here we outline steps to 1) control, via a joystick, a ROS agent with RGBD sensors to roam and map a Habitat Sim-simulated scene; 2) control a planner from the move_base package to navigate to a manually-set goal position.

  1. Repeat Step 1 and 2 from here to download MP3D scene assets and episode definitions.
  2. Download Habitat's test object assets into data/objects/ by running this command from Habitat Sim (more instructions from here):
    python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path <path to ros_x_habitat/data/objects/>
    
  3. Start roscore.
  4. Select a configuration file from configs/roam_configs/, e.g. pointnav_rgbd_roam_mp3d_test_scenes.yaml. You might want to change VIDEO_DIR to another directory of your liking.
  5. Run this command to initialize a Habitat sim environment and a joystick-controlled roamer:
    python src/scripts/roam_with_joy.py \
    --hab-env-config-path <config file path> \
    --episode-id <ID of episode to roam inside> \
    --scene-id <path to the episode's scene file, e.g. data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb> \
    --video-frame-period <number of continuous steps for each frame recorded>
    
    Note that the environment node won't initialize until it makes sure some other node is listening to the topics on which it publishes sensor readings: /rgb, /depth, /pointgoal_with_gps_compass. The script will fire up image_view nodes to listen to RGB/Depth readings but you need to fire up a dummy node yourself to listen to Pointgoal/GPS info. You can do this with the command
    rostopic echo /pointgoal_with_gps_compass
    
  6. Next, we map the scene with rtabmap_ros. Run
    roslaunch launch/rtabmap_mapping.launch
    
    Move the joystick-controlled agent around to map the environment. Save the map to somewhere. We also have some pre-built maps of Habitat test scenes and Matterport 3D environments under maps/.

Next, we use a planner from the move_base package to navigate in the scene with the help of that map we just built.

  1. Shut down every node you launched from Step 1 to 6 above.
  2. Repeat Step 3 to 5.
  3. Start the planner: run
    roslaunch launch/move_base.launch
    
    Make sure map_file_path and map_file_base_name have been set correctly before you run. The launcher file should also start an rviz session which allows you to 1) specify the goal point and 2) visualize RGB/depth sensor readings.

Tested Platforms

The experiments were run on a desktop with i7-10700K CPU, 64 GB of RAM, and an NVIDIA RTX 3070 GPU. We also tested the experiments on a desktop with 32 GB of RAM and an NVIDIA GT 1030 GPU.

Cite Our Work

If you are interested in using ros_x_habitat for your own research, please cite our CRV 2022 paper:

@INPROCEEDINGS{9867069,  
author={Chen, Guanxiong and Yang, Haoyu and Mitchell, Ian M.},  
booktitle={2022 19th Conference on Robots and Vision (CRV)},  
title={ROS-X-Habitat: Bridging the ROS Ecosystem with Embodied AI},  
year={2022},  volume={},  number={},  pages={24-31},  
doi={10.1109/CRV55824.2022.00012}}

License

This work is under the Creative Commons CC BY 4.0 License.

Acknowledgments

We would like to thank Bruce Cui from the Department of Mechanical Engineering at UBC for his initial work on ros_x_habitat. Also, we would like to appreciate the AI Habitat team from Facebook AI Research, including Prof. Dhruv Batra, Alex Clegg, Prof. Manolis Savva, and Erik Wijmans for their generous support throughout our development process.

References

  1. Habitat: A Platform for Embodied AI Research. Manolis Savva, Abhishek Kadian, Oleksandr Maksymets, Yili Zhao, Erik Wijmans, Bhavana Jain, Julian Straub, Jia Liu, Vladlen Koltun, Jitendra Malik, Devi Parikh, Dhruv Batra. IEEE/CVF International Conference on Computer Vision (ICCV), 2019.
  2. Habitat 2.0: Training Home Assistants to Rearrange their Habitat. Andrew Szot, Alex Clegg, Eric Undersander, Erik Wijmans, Yili Zhao, John Turner, Noah Maestre, Mustafa Mukadam, Devendra Chaplot, Oleksandr Maksymets, Aaron Gokaslan, Vladimir Vondrus, Sameer Dharur, Franziska Meier, Wojciech Galuba, Angel Chang, Zsolt Kira, Vladlen Koltun, Jitendra Malik, Manolis Savva, Dhruv Batra. arXiv preprint arXiv:2106.14405, 2021.
  3. ROS-X-Habitat: Bridging the ROS Ecosystem with Embodied AI. Guanxiong Chen, Haoyu Yang, Ian Mitchell. arXiv preprint arXiv:2109.07703, 2021.

ros_x_habitat's People

Contributors

ericchen321 avatar yhymason avatar ian-mitchell avatar

Stargazers

Ruoxiang LI avatar Langzhe Gu avatar Juan Diego  avatar Tsaisplus avatar Yunlong Guo avatar Shuo Feng avatar  avatar Dong An avatar  avatar Josh Barber avatar Dantalion avatar kyle0417 avatar Nuri Kim avatar robin han avatar Rishik Tiwari avatar yifan avatar Ammar Siddiqui avatar TZ_Kuang avatar Anujoy Chakraborty avatar  avatar  avatar Frank Gallagher avatar 赵安可 avatar  avatar  avatar Sarthak Chittawar avatar Ansh Shah avatar rm-rf avatar Sai Karthik Vyas Akondi avatar  avatar Ziyi Xu avatar Zhaomumu  avatar Barış Ata avatar  avatar 与尔不进 avatar Shuduo Sang avatar Adam Erickson avatar YF Zhang avatar Ma Hui avatar Yuttie avatar Jingyi Liu avatar SokhengDin avatar Vasileios Vasilopoulos avatar xunfeng avatar Josh Fourie avatar  avatar Mark Adamik avatar Andy Cai avatar Jingwen(Jarvis) YU avatar Junhao Chen avatar  avatar Àlex Batlle Casellas avatar Zeyu Liu avatar Ryan Dai avatar Julio A. Placed avatar  avatar 賴溡雨Lai Shih-Yu avatar smellslikeml avatar  avatar  avatar 爱可可-爱生活 avatar Shingo Kitagawa avatar Yoshiki Obinata avatar Kaustubh Mani avatar Elias Treis avatar Zifan Xu avatar Colin Chen avatar Rohit Menon avatar  avatar YzCui avatar  avatar Kavit Shah avatar Engin Bozkurt avatar Yuantao Chen avatar 莫非 avatar Juan Miguel Jimeno avatar  avatar Wei Yang  avatar shahao avatar Aloha Robotics avatar Tanmay Bhonsale avatar  avatar  avatar Zhengxiao Han avatar  avatar  avatar mllx01161110 avatar jasonsang avatar  avatar

Watchers

 avatar  avatar Philip Amadasun avatar Chunxuan Chen avatar

ros_x_habitat's Issues

Navigating Habitat Agent in Gazebo problem

I'm trying to reproduce Navigating Habitat Agent in Gazebo

After

export TURTLEBOT3_MODEL="waffle" 
roslaunch turtlebot3_gazebo turtlebot3_house.launch

yQLZjkSxI9

After

python src/nodes/habitat_agent_node.py \
--node-name agent_node \
--input-type rgbd \
--model-path data/checkpoints/v2/gibson-rgbd-best.pth 

VtGve2lSxj

After
rosservice call /ros_x_habitat/agent_node/reset_agent "{reset: 0, seed: 0}"
zwxMzKse1U
After
python src/nodes/habitat_agent_to_gazebo.py
NDn7nQKalK
After
python src/nodes/gazebo_to_habitat_agent.py --pointgoal-location 1 1 0
I244uevDw0
Which step am I doing wrong, please give me some help

ROS agent in Habitat

I'm opening a new issue for this. It also seem related to physics

Let's see if we can find a solution. I'm using Ubuntu 20, ROS noetic, habitat 0.2.0 (no diff between source/conda), habitat lab correctly installed.

Launching:
python src/scripts/roam_with_joy.py --hab-env-config-path configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml --scene-id data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb

Results in:

image

image

image

And get stuck there, with
Initializing task Nav-Phys
INFO env making sure agent is subscribed to sensor topics...

AttributeError: 'NoneType' object has no attribute 'motion_type'

The command is:
python src/scripts/eval_and_vis_habitat.py --input-type rgbd --model-path data/checkpoints/v2/gibson-rgbd-best.pth --task-config configs/setting_4_configs/pointnav_rgbd-mp3d.yaml --episode-id -1 --seed-file-path seeds/seed=7.csv --log-dir logs/ --make-maps --map-dir habitat_maps/ --make-plots \

Traceback (most recent call last):
File "src/scripts/eval_and_vis_habitat.py", line 169, in
main()
File "src/scripts/eval_and_vis_habitat.py", line 99, in main
map_height=200,
File "/home/duansh/rosxhab/catkin_ws/src/ros_x_habitat/src/evaluators/habitat_evaluator.py", line 125, in evaluate_and_get_maps
observations_per_action = self.env.reset()
File "/home/duansh/anaconda3/envs/rosxhab2/lib/python3.7/contextlib.py", line 74, in inner
return func(*args, **kwds)
File "/home/duansh/rosxhab/catkin_ws/src/ros_x_habitat/src/envs/habitat_rlenv.py", line 73, in reset
return self._env.reset()
File "/home/duansh/rosxhab/catkin_ws/src/ros_x_habitat/src/envs/physics_env.py", line 176, in reset
obj.motion_type = hsim.physics.MotionType.DYNAMIC
AttributeError: 'NoneType' object has no attribute 'motion_type'

I haven't found a solution. Can I ask if there is any way? Thank you

TypeError: metaclass conflict

hi, followed the instruction tightly, I have successfully installed habitat-sim(v0.2.0), habitat-lab(v0.2.0) and rosxhabitat.
python3.6, gym version is 0.26.2

habitat-sim(v0.2.0) is installed from conda

Then I ran this command, and got the error below:
(rosxhab) arcs@ARCS:~/catkin_ws/src/ros_x_habitat$ python src/scripts/eval_and_vis_habitat.py --input-type rgbd --model-path data/checkpoints/v2/gibson-rgbd-best.pth --task-config configs/setting_2_configs/pointnav_rgb-mp3d.yaml --episode-id -1 --seed-file-path seeds/2_seeds.csv --log-dir log-dir --make-maps --map-dir map-dir --make-plots --plot-dir plot-dir

/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/gym/core.py:27: UserWarning: WARN: Gym minimally supports python 3.6 as the python foundation not longer supports the version, please update your version to 3.7+
"Gym minimally supports python 3.6 as the python foundation not longer supports the version, please update your version to 3.7+"
Traceback (most recent call last):
File "src/scripts/eval_and_vis_habitat.py", line 5, in
from src.evaluators.habitat_evaluator import HabitatEvaluator
File "/home/arcs/catkin_ws/src/ros_x_habitat/src/evaluators/habitat_evaluator.py", line 9, in
from habitat_baselines.agents.ppo_agents import PPOAgent
File "/home/arcs/C++project/habitat-lab/habitat_baselines/init.py", line 7, in
from habitat_baselines.common.base_il_trainer import BaseILTrainer
File "/home/arcs/C++project/habitat-lab/habitat_baselines/common/base_il_trainer.py", line 10, in
from habitat_baselines.common.base_trainer import BaseTrainer
File "/home/arcs/C++project/habitat-lab/habitat_baselines/common/base_trainer.py", line 18, in
from habitat_baselines.common.tensorboard_utils import TensorboardWriter
File "/home/arcs/C++project/habitat-lab/habitat_baselines/common/tensorboard_utils.py", line 11, in
from torch.utils.tensorboard import SummaryWriter
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/torch-1.10.2-py3.6-linux-x86_64.egg/torch/utils/tensorboard/init.py", line 13, in
from .writer import FileWriter, SummaryWriter # noqa: F401
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/torch-1.10.2-py3.6-linux-x86_64.egg/torch/utils/tensorboard/writer.py", line 13, in
from tensorboard.summary.writer.event_file_writer import EventFileWriter
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/summary/init.py", line 22, in
from tensorboard.summary import v1 # noqa: F401
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/summary/v1.py", line 23, in
from tensorboard.plugins.histogram import summary as _histogram_summary
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/plugins/histogram/summary.py", line 35, in
from tensorboard.plugins.histogram import summary_v2
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/plugins/histogram/summary_v2.py", line 35, in
from tensorboard.util import tensor_util
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/util/tensor_util.py", line 20, in
from tensorboard.compat.tensorflow_stub import dtypes, compat, tensor_shape
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/compat/tensorflow_stub/init.py", line 25, in
from . import app # noqa
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/compat/tensorflow_stub/app.py", line 21, in
from . import flags
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/tb_nightly-2.15.0a20231013-py3.6.egg/tensorboard/compat/tensorflow_stub/flags.py", line 25, in
from absl.flags import * # pylint: disable=wildcard-import
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/absl_py-2.0.0-py3.6.egg/absl/flags/init.py", line 35, in
from absl.flags import _argument_parser
File "/home/arcs/anaconda3/envs/rosxhab/lib/python3.6/site-packages/absl_py-2.0.0-py3.6.egg/absl/flags/_argument_parser.py", line 82, in
class ArgumentParser(Generic[_T], metaclass=_ArgumentParserCache):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
(rosxhab) arcs@ARCS:~/catkin_ws/src/ros_x_habitat$

Can you help me out?

how to set up semantic sensor?

Hi there,

I would like to set up a semantic sensor for +physics+ROS settings. I added SEMANTIC_SENSOR item in the roam config file under PHYSICS_SIMULATOR:

SEMANTIC_SENSOR: WIDTH: 480 HEIGHT: 480 POSITION: [0, 0.65, 0]

, and run roam_with_joy.py. Terminal outputs:

Simulator::createSceneInstance : The active scene does not contain semantic annotations.

I guess there should be somewhere I can set up the path for the semantic annotation file like

habitat_sim.SimulationConfiguration().scene_dataset_config_file

Could anyone help? Thanks!

ImportError: cannot import name 'Roam"

Hi and thank you for your work!
I'm trying to run the example Navigating ROS Agent in Habitat Sim, with:
python ros_x_habitat/src/scripts/roam_with_joy.py --hab-env-config-path ros_x_habitat/configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml --episode-id 1 --scene-id data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb --video-frame-period 24
but I have this error:
Traceback (most recent call last): File "/home/marco/catkin_ws/src/ros_x_habitat/src/scripts/roam_with_joy.py", line 2, in <module> from src.roamers.joy_habitat_roamer import JoyHabitatRoamer File "/home/marco/catkin_ws/src/ros_x_habitat/src/roamers/joy_habitat_roamer.py", line 6, in <module> from ros_x_habitat.srv import Roam ImportError: cannot import name 'Roam' from 'ros_x_habitat.srv' (unknown location)
If I add __init__.py in the srv folder, the error becomes:
ImportError: cannot import name 'Roam' from 'ros_x_habitat.srv' (/home/marco/catkin_ws/src/ros_x_habitat/srv/__init__.py)
Do you have any ideas why I'm having this issue?

Regarding MP3D 'scene_assets'

Hello,

Thank you for sharing your work.

The current instructions on downloading MP3D Scene-assets seem to be unclear.
The hyperlink just redirects to the Matterport3D dataset homepage.

At best, I was only able to get mp3D_example_scene using dataset_downloads.py in 'Habitat_sim/utils' in my rosxhab Conda environment.

Could you please elaborate on how to acquire the 'scene-assets'?

Thanks!

ROS agent in Habitat sim: issue with odom not being published for rtabmap example

I'm trying to run the ROS agent in Habitat sim example with RTAB map.

There is an error with the rtabmap node, all topics published by the rtabmap_slam node seems to be empty and no map is being creared by rtab.
I think the issue is with the /odom topic, which is required for the rtabmap_slam node.

This is the output of the terminal running the rtab_mapping.launch launch file, here I get the warning that /rtabmap is not receiving data

(rosxhab) [anagh=>~/rosxhab/src/ros_x_habitat]$roslaunch launch/rtabmap_mapping.launch 
... logging to /home/anagh/.ros/log/85c41c22-b914-11ee-b182-558cd0d51b25/roslaunch-anagh-VivobookPro-71817.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://anagh-VivobookPro:35817/

[ ... ]
[.....]


/rtabmap_viz subscribed to:
   /odom
[ INFO] [1705923182.170730350]: rtabmap_viz started.
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 458, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 459, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 511, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 512, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 1617, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 1618, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
[ WARN] [1705923185.163167286]: /rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=10).
/rtabmap subscribed to (approx sync):
   /odom \
   /rgbd_image \
   /scan
[ WARN] [1705923186.170738774]: /rtabmap_viz: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=10).
/rtabmap_viz subscribed to:
   /odom
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2361, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2362, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2447, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2448, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2540, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 6 (BadCursor), sequence: 2541, resource id: 79691787, major code: 2 (ChangeWindowAttributes), minor code: 0
[ WARN] [1705923190.163344159]: /rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=10).
/rtabmap subscribed to (approx sync):
   /odom \
   /rgbd_image \
   /scan
[ WARN] [1705923191.170848284]: /rtabmap_viz: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=10).
/rtabmap_viz subscribed to:
   /odom

by running rostopic hz /odom /rgbd_image /scan I can confirm that it is the /odom topic which doesnt contain anything

(base) [anagh=>~]$rostopic hz /odom /rgbd_image /scan
subscribed to [/odom]
subscribed to [/rgbd_image]
subscribed to [/scan]
   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.355   0.06933     0.2061      0.03666   8     
/scan         7.384   0.06979     0.2047      0.03899   8     

   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.305   0.06933     0.2068      0.03618   15    
/scan         7.306   0.06979     0.2047      0.03559   15    

   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.358   0.06933     0.2068      0.02975   22    
/scan         7.362   0.06673     0.2047      0.03557   22    

   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.127   0.06787     0.2605      0.03936   29    
/scan         7.117   0.06673     0.2606      0.04311   29    

   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.275   0.06787     0.2605      0.03988   37    
/scan         7.266   0.006053    0.2606      0.04477   37    

^C   topic       rate   min_delta   max_delta   std_dev   window
==============================================================
/rgbd_image   7.298   0.06684     0.2605      0.04077   41    
/scan         7.295   0.006053    0.2606      0.0447    41    

I think the reason /odom is empty has something to do with the correct transformations not being obtained.
This is being shown as a warning by the terminal running the habitat python script

This is the output of the habitat node, it gives a warning about base to fixed frame transformations not being obtained.

(rosxhab) [anagh=>~/rosxhab/src/ros_x_habitat]$python /home/anagh/rosxhab/src/ros_x_habitat/src/scripts/roam_with_joy.py --hab-env-config-path /home/anagh/rosxhab/src/ros_x_habitat/configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml --scene-id /home/anagh/rosxhab/src/ros_x_habitat/data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb
... logging to /home/anagh/.ros/log/85c41c22-b914-11ee-b182-558cd0d51b25/roslaunch-anagh-VivobookPro-66653.log
started roslaunch server http://anagh-VivobookPro:36657/

SUMMARY
========

PARAMETERS
 * /depthimage_to_laserscan/output_frame_id: laser
 * /depthimage_to_laserscan/scan_time: 0.025
 * /joy_node/autorepeat_rate: 20
 * /joy_node/coalesce_interval: 0.05
 * /laser_scan_matcher_node/base_frame: base_frame
 * /laser_scan_matcher_node/fixed_frame: odom
 * /laser_scan_matcher_node/max_iterations: 10
 * /rosdistro: noetic
 * /rosversion: 1.16.0

NODES
  /
    base_frame_to_laser (tf/static_transform_publisher)
    depthimage_to_laserscan (depthimage_to_laserscan/depthimage_to_laserscan)
    dummy_ptgoal_with_gps_compass_subscriber (ros_x_habitat/dummy_ptgoal_with_gps_compass_subscriber.py)
    image_view_depth (image_view/image_view)
    image_view_rgb (image_view/image_view)
    joy_controller (ros_x_habitat/joy_controller.py)
    joy_node (joy/joy_node)
    laser_scan_matcher_node (laser_scan_matcher/laser_scan_matcher_node)

ROS_MASTER_URI=http://localhost:11311
process[joy_node-1]: started with pid [66688]
process[joy_controller-2]: started with pid [66689]
process[image_view_rgb-3]: started with pid [66690]
process[image_view_depth-4]: started with pid [66696]
process[dummy_ptgoal_with_gps_compass_subscriber-5]: started with pid [66697]
process[depthimage_to_laserscan-6]: started with pid [66698]
process[laser_scan_matcher_node-7]: started with pid [66699]
process[base_frame_to_laser-8]: started with pid [66700]
[INFO] [1705922636.686946]: launch file launch/teleop.launch started
[ INFO] [1705922636.723810293]: Starting LaserScanMatcher
[ WARN] [1705922636.733858897]: Couldn't set gain on joystick force feedback: Bad file descriptor
Warning: Gym version v0.24.0 has a number of critical issues with `gym.make` such that the `reset` and `step` functions are called before returning the environment. It is recommend to downgrading to v0.23.1 or upgrading to v0.25.1
/home/anagh/habitat-lab/habitat/utils/visualizations/maps.py:30: DeprecationWarning: Starting with ImageIO v3 the behavior of this function will switch to that of iio.v3.imread. To keep the current behavior (and make this warning disappear) use `import imageio.v2 as imageio` or call `imageio.v2.imread` directly.
  "100x100.png",
2024-01-22 16:53:58,646 Initializing dataset PointNav-v1
2024-01-22 16:53:58,653 initializing sim Sim-Phys
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0122 16:53:58.656105 66701 ManagedFileBasedContainer.h:210] <Dataset>::convertFilenameToPassedExt : Filename : default changed to proposed scene_dataset_config.json filename : default.scene_dataset_config.json
I0122 16:53:58.656127 66701 AttributesManagerBase.h:365] <Dataset>::createFromJsonOrDefaultInternal : Proposing JSON name : default.scene_dataset_config.json from original name : default | This file  does not exist.
I0122 16:53:58.656178 66701 AssetAttributesManager.cpp:120] Asset attributes (capsule3DSolid : capsule3DSolid_hemiRings_4_cylRings_1_segments_12_halfLen_0.75_useTexCoords_false_useTangents_false) created and registered.
I0122 16:53:58.656210 66701 AssetAttributesManager.cpp:120] Asset attributes (capsule3DWireframe : capsule3DWireframe_hemiRings_8_cylRings_1_segments_16_halfLen_1) created and registered.
I0122 16:53:58.656234 66701 AssetAttributesManager.cpp:120] Asset attributes (coneSolid : coneSolid_segments_12_halfLen_1.25_rings_1_useTexCoords_false_useTangents_false_capEnd_true) created and registered.
I0122 16:53:58.656250 66701 AssetAttributesManager.cpp:120] Asset attributes (coneWireframe : coneWireframe_segments_32_halfLen_1.25) created and registered.
I0122 16:53:58.656258 66701 AssetAttributesManager.cpp:120] Asset attributes (cubeSolid : cubeSolid) created and registered.
I0122 16:53:58.656265 66701 AssetAttributesManager.cpp:120] Asset attributes (cubeWireframe : cubeWireframe) created and registered.
I0122 16:53:58.656286 66701 AssetAttributesManager.cpp:120] Asset attributes (cylinderSolid : cylinderSolid_rings_1_segments_12_halfLen_1_useTexCoords_false_useTangents_false_capEnds_true) created and registered.
I0122 16:53:58.656302 66701 AssetAttributesManager.cpp:120] Asset attributes (cylinderWireframe : cylinderWireframe_rings_1_segments_32_halfLen_1) created and registered.
I0122 16:53:58.656313 66701 AssetAttributesManager.cpp:120] Asset attributes (icosphereSolid : icosphereSolid_subdivs_1) created and registered.
I0122 16:53:58.656322 66701 AssetAttributesManager.cpp:120] Asset attributes (icosphereWireframe : icosphereWireframe_subdivs_1) created and registered.
I0122 16:53:58.656333 66701 AssetAttributesManager.cpp:120] Asset attributes (uvSphereSolid : uvSphereSolid_rings_8_segments_16_useTexCoords_false_useTangents_false) created and registered.
I0122 16:53:58.656347 66701 AssetAttributesManager.cpp:120] Asset attributes (uvSphereWireframe : uvSphereWireframe_rings_16_segments_32) created and registered.
I0122 16:53:58.656351 66701 AssetAttributesManager.cpp:108] ::constructor : Built default primitive asset templates : 12
I0122 16:53:58.656746 66701 SceneDatasetAttributesManager.cpp:36] File (default) not found, so new default dataset attributes created and registered.
I0122 16:53:58.656751 66701 MetadataMediator.cpp:127] ::createSceneDataset : Dataset default successfully created.
I0122 16:53:58.656757 66701 AttributesManagerBase.h:365] <Physics Manager>::createFromJsonOrDefaultInternal : Proposing JSON name : ./data/default.physics_config.json from original name : ./data/default.physics_config.json | This file  exists.
I0122 16:53:58.656811 66701 PhysicsAttributesManager.cpp:26] JSON Configuration File (./data/default.physics_config.json) based physics manager attributes created and registered.
I0122 16:53:58.656816 66701 MetadataMediator.cpp:212] ::setActiveSceneDatasetName : Previous active dataset  changed to default successfully.
I0122 16:53:58.656819 66701 MetadataMediator.cpp:183] ::setCurrPhysicsAttributesHandle : Old physics manager attributes  changed to ./data/default.physics_config.json successfully.
I0122 16:53:58.656823 66701 MetadataMediator.cpp:68] ::setSimulatorConfiguration : Set new simulator config for scene/stage : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and dataset : default which is currently active dataset.
Renderer: AMD RENOIR (DRM 3.42.0, 5.15.0-94-generic, LLVM 12.0.0) by AMD
OpenGL version: 4.6 (Core Profile) Mesa 21.2.6
Using optional features:
    GL_ARB_vertex_array_object
    GL_ARB_ES2_compatibility
    GL_ARB_separate_shader_objects
    GL_ARB_robustness
    GL_ARB_texture_storage
    GL_ARB_invalidate_subdata
    GL_ARB_texture_storage_multisample
    GL_ARB_multi_bind
    GL_ARB_direct_state_access
    GL_ARB_get_texture_sub_image
    GL_ARB_texture_filter_anisotropic
    GL_KHR_debug
Using driver workarounds:
    no-layout-qualifiers-on-old-glsl
    mesa-implementation-color-read-format-dsa-explicit-binding
    mesa-dsa-createquery-except-pipeline-stats
    mesa-forward-compatible-line-width-range
I0122 16:53:58.720314 66701 ManagedFileBasedContainer.h:210] <Scene Instance>::convertFilenameToPassedExt : Filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb changed to proposed scene_instance.json filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.scene_instance.json
I0122 16:53:58.720348 66701 MetadataMediator.cpp:311] ::getSceneAttributesByName : Dataset : default has no preloaded SceneAttributes or StageAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb so loading/creating a new StageAttributes with this name, and then creating a SceneAttributes with the same name that references this stage.
I0122 16:53:58.720360 66701 ManagedFileBasedContainer.h:210] <Stage Template>::convertFilenameToPassedExt : Filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb changed to proposed stage_config.json filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.stage_config.json
I0122 16:53:58.720368 66701 AttributesManagerBase.h:365] <Stage Template>::createFromJsonOrDefaultInternal : Proposing JSON name : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.stage_config.json from original name : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb | This file  does not exist.
I0122 16:53:58.720456 66701 AbstractObjectAttributesManagerBase.h:183] File (data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb) exists but is not a recognized config filename extension, so new default Stage Template attributes created and registered.
I0122 16:53:58.720480 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:53:58.720486 66701 SceneDatasetAttributes.cpp:79] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes 'no_lights' specified in Scene Attributes but does not exist in dataset, so creating.
I0122 16:53:58.720492 66701 ManagedFileBasedContainer.h:210] <Lighting Layout>::convertFilenameToPassedExt : Filename : no_lights changed to proposed lighting_config.json filename : no_lights.lighting_config.json
I0122 16:53:58.720504 66701 ManagedFileBasedContainer.h:210] <Lighting Layout>::convertFilenameToPassedExt : Filename : no_lights changed to proposed lighting_config.json filename : no_lights.lighting_config.json
I0122 16:53:58.720510 66701 AttributesManagerBase.h:365] <Lighting Layout>::createFromJsonOrDefaultInternal : Proposing JSON name : no_lights.lighting_config.json from original name : no_lights | This file  does not exist.
I0122 16:53:58.720527 66701 LightLayoutAttributesManager.cpp:34] File (no_lights) not found, so new default light layout attributes created and registered.
I0122 16:53:58.720535 66701 Simulator.cpp:198] ::setSceneInstanceAttributes : Navmesh file location in scene instance : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0122 16:53:58.720541 66701 Simulator.cpp:205] ::setSceneInstanceAttributes : Loading navmesh from data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0122 16:53:58.720592 66701 Simulator.cpp:208] ::setSceneInstanceAttributes : Navmesh Loaded.
I0122 16:53:58.720600 66701 SceneGraph.h:85] Created DrawableGroup: 
I0122 16:53:58.720604 66701 Simulator.cpp:243] ::setSceneInstanceAttributes : SceneInstance : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb proposed Semantic Scene Descriptor filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.house
W0122 16:53:58.746963 66701 Simulator.cpp:267] ::setSceneInstanceAttributes : All attempts to load SSD with SceneAttributes-provided name data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.house : exist : 0 : loaded as expected type : 1
I0122 16:53:58.747048 66701 Simulator.cpp:316] ::createSceneInstance : Using scene instance-specified Light key : -no_lights-
I0122 16:53:58.747056 66701 MetadataMediator.cpp:68] ::setSimulatorConfiguration : Set new simulator config for scene/stage : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and dataset : default which is currently active dataset.
I0122 16:53:58.747076 66701 Simulator.cpp:374] ::createSceneInstance : Start to load stage named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb with render asset : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and collision asset : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb
I0122 16:53:58.747093 66701 ResourceManager.cpp:249] ::loadStage : Not loading semantic mesh
I0122 16:53:58.747099 66701 ResourceManager.cpp:277] ::loadStage : start load render asset data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:53:58.747105 66701 ResourceManager.cpp:691] ::loadStageInternal : Attempting to load stage data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb 
I0122 16:53:58.747128 66701 ResourceManager.cpp:1254] Importing Basis files as ASTC 4x4 for 2t7WUuJeko7.glb
I0122 16:53:59.936077 66701 Simulator.cpp:392] ::createSceneInstance : Successfully loaded stage named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb
W0122 16:53:59.936102 66701 Simulator.cpp:427] 
---
Simulator::createSceneInstance : The active scene does not contain semantic annotations. 
---
I0122 16:53:59.936112 66701 MetadataMediator.cpp:262] ::getSceneAttributesByName : Query dataset : default for SceneAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb yields 1 candidates.  Using data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:53:59.936123 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:53:59.936127 66701 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0122 16:53:59.936134 66701 MetadataMediator.cpp:262] ::getSceneAttributesByName : Query dataset : default for SceneAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb yields 1 candidates.  Using data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:53:59.936139 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:53:59.936143 66701 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0122 16:53:59.936162 66701 Simulator.cpp:171] ::reconfigure : createSceneInstance success == true for active scene name : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb with renderer.
I0122 16:53:59.936565 66701 simulator.py:221] Loaded navmesh data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
2024-01-22 16:53:59,938 Initializing task Nav-Phys
2024-01-22 16:53:59,947 INFO env making sure agent is subscribed to sensor topics...
2024-01-22 16:54:00,237 INFO env initialized
I0122 16:54:00.238684 66701 PhysicsManager.cpp:50] Deconstructing PhysicsManager
I0122 16:54:00.238704 66701 SemanticScene.h:43] Deconstructing SemanticScene
I0122 16:54:00.239349 66701 SceneManager.h:25] Deconstructing SceneManager
I0122 16:54:00.239354 66701 SceneGraph.h:25] Deconstructing SceneGraph
I0122 16:54:00.239411 66701 Sensor.cpp:69] Deconstructing Sensor
I0122 16:54:00.239420 66701 Sensor.cpp:69] Deconstructing Sensor
I0122 16:54:00.251482 66701 Renderer.cpp:71] Deconstructing Renderer
I0122 16:54:00.251511 66701 WindowlessContext.h:17] Deconstructing WindowlessContext
I0122 16:54:00.283349 66701 MetadataMediator.cpp:68] ::setSimulatorConfiguration : Set new simulator config for scene/stage : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and dataset : default which is currently active dataset.
Renderer: AMD RENOIR (DRM 3.42.0, 5.15.0-94-generic, LLVM 12.0.0) by AMD
OpenGL version: 4.6 (Core Profile) Mesa 21.2.6
Using optional features:
    GL_ARB_vertex_array_object
    GL_ARB_ES2_compatibility
    GL_ARB_separate_shader_objects
    GL_ARB_robustness
    GL_ARB_texture_storage
    GL_ARB_invalidate_subdata
    GL_ARB_texture_storage_multisample
    GL_ARB_multi_bind
    GL_ARB_direct_state_access
    GL_ARB_get_texture_sub_image
    GL_ARB_texture_filter_anisotropic
    GL_KHR_debug
Using driver workarounds:
    no-layout-qualifiers-on-old-glsl
    mesa-implementation-color-read-format-dsa-explicit-binding
    mesa-dsa-createquery-except-pipeline-stats
    mesa-forward-compatible-line-width-range
I0122 16:54:00.314508 66701 MetadataMediator.cpp:262] ::getSceneAttributesByName : Query dataset : default for SceneAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb yields 1 candidates.  Using data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:54:00.314527 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:54:00.314532 66701 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0122 16:54:00.314538 66701 Simulator.cpp:198] ::setSceneInstanceAttributes : Navmesh file location in scene instance : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0122 16:54:00.314548 66701 Simulator.cpp:205] ::setSceneInstanceAttributes : Loading navmesh from data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0122 16:54:00.314599 66701 Simulator.cpp:208] ::setSceneInstanceAttributes : Navmesh Loaded.
I0122 16:54:00.314610 66701 SceneGraph.h:85] Created DrawableGroup: 
I0122 16:54:00.314613 66701 Simulator.cpp:243] ::setSceneInstanceAttributes : SceneInstance : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb proposed Semantic Scene Descriptor filename : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.house
W0122 16:54:00.340817 66701 Simulator.cpp:267] ::setSceneInstanceAttributes : All attempts to load SSD with SceneAttributes-provided name data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.house : exist : 0 : loaded as expected type : 1
I0122 16:54:00.340880 66701 Simulator.cpp:316] ::createSceneInstance : Using scene instance-specified Light key : -no_lights-
I0122 16:54:00.340894 66701 MetadataMediator.cpp:68] ::setSimulatorConfiguration : Set new simulator config for scene/stage : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and dataset : default which is currently active dataset.
I0122 16:54:00.340916 66701 Simulator.cpp:374] ::createSceneInstance : Start to load stage named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb with render asset : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb and collision asset : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb
I0122 16:54:00.340929 66701 ResourceManager.cpp:249] ::loadStage : Not loading semantic mesh
I0122 16:54:00.340932 66701 ResourceManager.cpp:277] ::loadStage : start load render asset data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:54:00.340934 66701 ResourceManager.cpp:691] ::loadStageInternal : Attempting to load stage data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb 
I0122 16:54:00.340950 66701 ResourceManager.cpp:1254] Importing Basis files as ASTC 4x4 for 2t7WUuJeko7.glb
I0122 16:54:01.363732 66701 Simulator.cpp:392] ::createSceneInstance : Successfully loaded stage named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb
W0122 16:54:01.363759 66701 Simulator.cpp:427] 
---
Simulator::createSceneInstance : The active scene does not contain semantic annotations. 
---
I0122 16:54:01.363772 66701 MetadataMediator.cpp:262] ::getSceneAttributesByName : Query dataset : default for SceneAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb yields 1 candidates.  Using data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:54:01.363785 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:54:01.363790 66701 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0122 16:54:01.363799 66701 MetadataMediator.cpp:262] ::getSceneAttributesByName : Query dataset : default for SceneAttributes named : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb yields 1 candidates.  Using data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb.
I0122 16:54:01.363806 66701 SceneDatasetAttributes.cpp:45] ::addNewSceneInstanceToDataset : Dataset : 'default' : Stage Attributes 'data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0122 16:54:01.363812 66701 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0122 16:54:01.363834 66701 Simulator.cpp:171] ::reconfigure : createSceneInstance success == true for active scene name : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb with renderer.
I0122 16:54:01.364698 66701 simulator.py:221] Loaded navmesh data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0122 16:54:05.399345 66701 AttributesManagerBase.h:281] <Object Template>::loadAllTemplatesFromPathAndExt <object_config.json> : Parsing Object Template library directory: data/objects/locobot_merged for 'object_config.json' files
I0122 16:54:05.399418 66701 AttributesManagerBase.h:242] <Object Template>::loadAllFileBasedTemplates : Loading 1 Object Template templates found in data/objects/locobot_merged
I0122 16:54:05.399423 66701 AttributesManagerBase.h:247] ::loadAllFileBasedTemplates : Load Object Template template: locobot_merged.object_config.json
I0122 16:54:05.399436 66701 AttributesManagerBase.h:365] <Object Template>::createFromJsonOrDefaultInternal : Proposing JSON name : data/objects/locobot_merged/locobot_merged.object_config.json from original name : data/objects/locobot_merged/locobot_merged.object_config.json | This file  exists.
I0122 16:54:05.399567 66701 AbstractObjectAttributesManagerBase.h:183] JSON Configuration File (data/objects/locobot_merged/locobot_merged.object_config.json) based Object Template attributes created and registered.
I0122 16:54:05.399575 66701 AttributesManagerBase.h:263] <Object Template>::loadAllFileBasedTemplates : Loaded file-based templates: 1
I0122 16:54:05.399647 66701 ResourceManager.cpp:1254] Importing Basis files as ASTC 4x4 for locobot_merged.glb
I0122 16:54:05.479056 66701 ResourceManager.cpp:1254] Importing Basis files as ASTC 4x4 for locobot_merged_convex.glb
W0122 16:54:05.482625 66701 PhysicsManager.cpp:248] ::addObject : simpleObjectHandle : locobot_merged
W0122 16:54:05.482645 66701 PhysicsManager.cpp:251] ::addObject : newObjectHandle : locobot_merged_:0000
/opt/ros/noetic/lib/python3/dist-packages/cv_bridge/core.py:270: DeprecationWarning: tostring() is deprecated. Use tobytes() instead.
  img_msg.data = cvim.tostring()
[-0.  0. -0.]
[ WARN] [1705922645.593100013]: Could not get base to fixed frame transform, "odom" passed to lookupTransform argument fixed_frame does not exist. 
[-0.  0. -0.]
[ WARN] [1705922645.767538515]: Could not get base to fixed frame transform, Lookup would require extrapolation at time 1705922645.664090395, but only time 1705922645.483074903 is in the buffe, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[-0.  0. -0.]
[ WARN] [1705922645.974462246]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.129528046s into the future.  Requested time 1705922645.793618441 but the latest data is at time 1705922645.664090395, when looking up transform from frame [base_frame] to frame [odom]
[ WARN] [1705922646.075409638]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.153560400s into the future.  Requested time 1705922645.947178841 but the latest data is at time 1705922645.793618441, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.180891861]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.131035328s into the future.  Requested time 1705922646.078214169 but the latest data is at time 1705922645.947178841, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.308848563]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.127889633s into the future.  Requested time 1705922646.206103802 but the latest data is at time 1705922646.078214169, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.436924411]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.120960951s into the future.  Requested time 1705922646.327064753 but the latest data is at time 1705922646.206103802, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.551648030]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.116361618s into the future.  Requested time 1705922646.443426371 but the latest data is at time 1705922646.327064753, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.663308969]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.113384009s into the future.  Requested time 1705922646.556810379 but the latest data is at time 1705922646.443426371, when looking up transform from frame [base_frame] to frame [odom]
[-0.  0. -0.]
[ WARN] [1705922646.777872166]: Could not get base to fixed frame transform, Lookup would require extrapolation 0.113232612s into the future.  Requested time 1705922646.670042992 but the latest data is at time 1705922646.556810379, when looking up transform from frame [base_frame] to frame [odom]

This is the tf-tree from rqt as well

frames

Adding Support for ROS 2

Hello @ericchen321 ,

Does this project support ROS 2 out of the box? if it isn't do you think that adding support to ROS 2 be a good idea,
I might give it a try.

Coordinate system

Hi everyone and thanks for your work!
I'm trying to use your code with "Navigating ROS Agent in Habitat Sim".
My question is: how can I obtain the position and orientation of the robot in this setting?

Is it okay to run under python 3.7

When I used python 3.6, I found that there was an error reported in the habitat tab, so I upgraded the python version to 3.7. if there is a problem running the following code under 3.7, thank you!

about planner

how to run a planner from rtabmap_ros in Habitat Sim?

Error ROS agent in Habitat

When running the ROS agent in habitat (src/scripts/roam_with_joy.py ), I'm getting the following error:

Traceback (most recent call last): File "src/nodes/habitat_env_node.py", line 709, in <module> main() File "src/nodes/habitat_env_node.py", line 705, in main env_node.simulate() File "src/nodes/habitat_env_node.py", line 637, in simulate self.reset() File "src/nodes/habitat_env_node.py", line 266, in reset self.observations = self.env.reset() File "/home/user/miniconda3/envs/habitat/lib/python3.7/contextlib.py", line 74, in inner return func(*args, **kwds) File "/.../src/ros_x_habitat/src/envs/habitat_rlenv.py", line 73, in reset return self._env.reset() File "/.../src/ros_x_habitat/src/envs/physics_env.py", line 176, in reset obj.motion_type = hsim.physics.MotionType.DYNAMIC AttributeError: 'NoneType' object has no attribute 'motion_type'

Any ideas?

Is there a docker image available?

Habitat lab has a docker container available, I was wondering if there was an official docker container or if someone has one that I can make use of?

Inquiry on data/scene_datasets/mp3d/ directory

I'm a bit confused on the installation and test instructions on the ReadMe, is data/scene_datasets/mp3d/ just where one places the dataset from MatterPort 3D if they get access to it? Is this directory neccessary for just doing the tests provided in the readMe?

Installation Issues

ROS x Habitat Installation Instructions

Create and Activate Conda Environment

cd ~
mkdir rosxhab
cd rosxhab
mkdir src
cd src
git clone https://github.com/ericchen321/ros_x_habitat.git
cd ros_x_habitat
conda create -n rosxhab python=3.6.13 cmake=3.14.0 -y
conda activate rosxhab
pip install --upgrade pip
pip install -r requirements.txt

Install Habitat-Sim

cd ~
git clone https://github.com/facebookresearch/habitat-sim.git
cd habitat-sim
git checkout v0.2.0
pip install -r requirements.txt
conda install habitat-sim=0.2.0 withbullet -c conda-forge -c aihabitat -y

Install Habitat-Lab

cd ~
git clone https://github.com/facebookresearch/habitat-lab.git
cd habitat-lab
git checkout v0.2.0
pip install -r requirements.txt
python setup.py develop --all

Build ROS Package

cd ~/rosxhab
pip install empy==3.3.4
catkin build

docker image

Can you please provide a docker image for this? Would be really useful for people working with different OS versions and avoid potential package conflicts on their system.

Error when running command

Hi, I got an error when trying to run the following command. Can you help me with the following? Thank you very much.
python src/scripts/eval_and_vis_habitat.py --input-type rgbd --model-path data/checkpoints/v2/gibson-rgbd-best.pth --task-config configs/setting_4_configs/pointnav_rgbd-mp3d.yaml --episode-id -1 --seed-file-path seeds/2_seeds.csv --log-dir logs --make-maps --map-dir maps --make-plots --plot-dir plots

The specific errors are as follows:

s/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb' specified in Scene Attributes exists in dataset library.
I0507 18:58:32.987673 68071 SceneDatasetAttributes.cpp:85] ::addNewSceneInstanceToDataset : Dataset : 'default' : Lighting Layout Attributes no_lights specified in Scene Attributes exists in dataset library.
I0507 18:58:32.987699 68071 Simulator.cpp:171] ::reconfigure : createSceneInstance success == true for active scene name : data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.glb with renderer.
I0507 18:58:32.987965 68071 simulator.py:221] Loaded navmesh data/scene_datasets/mp3d/2t7WUuJeko7/2t7WUuJeko7.navmesh
I0507 18:58:36.142938 68071 AttributesManagerBase.h:281] ::loadAllTemplatesFromPathAndExt <object_config.json> : Parsing Object Template library directory: data/objects/locobot_merged for 'object_config.json' files
I0507 18:58:36.142992 68071 AttributesManagerBase.h:242] ::loadAllFileBasedTemplates : Loading 1 Object Template templates found in data/objects/locobot_merged
I0507 18:58:36.142995 68071 AttributesManagerBase.h:247] ::loadAllFileBasedTemplates : Load Object Template template: locobot_merged.object_config.json
I0507 18:58:36.143004 68071 AttributesManagerBase.h:365] ::createFromJsonOrDefaultInternal : Proposing JSON name : data/objects/locobot_merged/locobot_merged.object_config.json from original name : data/objects/locobot_merged/locobot_merged.object_config.json | This file exists.
I0507 18:58:36.143105 68071 AbstractObjectAttributesManagerBase.h:183] JSON Configuration File (data/objects/locobot_merged/locobot_merged.object_config.json) based Object Template attributes created and registered.
I0507 18:58:36.143112 68071 AttributesManagerBase.h:263] ::loadAllFileBasedTemplates : Loaded file-based templates: 1
I0507 18:58:36.143174 68071 ResourceManager.cpp:1265] Importing Basis files as BC7 for locobot_merged.glb
I0507 18:58:36.192312 68071 ResourceManager.cpp:1265] Importing Basis files as BC7 for locobot_merged_convex.glb
W0507 18:58:36.195832 68071 PhysicsManager.cpp:248] ::addObject : simpleObjectHandle : locobot_merged
W0507 18:58:36.195848 68071 PhysicsManager.cpp:251] ::addObject : newObjectHandle : locobot_merged_:0000
Traceback (most recent call last):
File "src/scripts/eval_and_vis_habitat.py", line 169, in
main()
File "src/scripts/eval_and_vis_habitat.py", line 99, in main
map_height=200,
File "/home/ros/cbl/catkin_ws/src/ros_x_habitat/src/evaluators/habitat_evaluator.py", line 125, in evaluate_and_get_maps
observations_per_action = self.env.reset()
File "/home/ros/anaconda3/envs/rh/lib/python3.7/contextlib.py", line 74, in inner
return func(*args, **kwds)
File "/home/ros/cbl/catkin_ws/src/ros_x_habitat/src/envs/habitat_rlenv.py", line 73, in reset
return self._env.reset()
File "/home/ros/cbl/catkin_ws/src/ros_x_habitat/src/envs/physics_env.py", line 176, in reset
obj.motion_type = hsim.physics.MotionType.DYNAMIC
AttributeError: 'NoneType' object has no attribute 'motion_type'

Initialize with different Agent Position and seeding

Hi,
From Section "Navigating ROS Agent in Habitat Sim", which uses the roam_with_joy. How can I change the agent initial position in the scene?
And,
is there a direct method from there that allows to seed this scenario? (I saw the seeding methods, but for other codes, not for "roam_with_joy.py"

Navigating ROS Agent in Habitat Sim error

I ran the python in rosxhab environment, but get this error:

RosPluginProvider.load(qt_gui_cpp/CppPluginProvider) exception raised in builtin.import(qt_gui_cpp.cpp_plugin_provider, [CppPluginProvider]):
Traceback (most recent call last):
File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 80, in load
module = builtin.import(
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in
from .cpp_binding_helper import qt_gui_cpp
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in
from . import libqt_gui_cpp_sip
ValueError: PyCapsule_GetPointer called with incorrect name

RecursivePluginProvider.discover() loading plugin "qt_gui_cpp/CppPluginProvider" failed:
Traceback (most recent call last):
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/recursive_plugin_provider.py", line 60, in discover
instance = self._plugin_provider.load(plugin_descriptor.plugin_id(), None)
File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 90, in load
raise e
File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 79, in load
module = builtin.import(
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in
from .cpp_binding_helper import qt_gui_cpp
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in
from . import libqt_gui_cpp_sip
ValueError: PyCapsule_GetPointer called with incorrect name

TypeError: (): incompatible function arguments. The following argument types are supported:

when I try Navigating ROS Agent in Habitat Sim,Some issues arise:
The command is as follows:
python src/scripts/roam_with_joy.py
--hab-env-config-path configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml
--scene-id data/scene_datasets/YFuZgdQ5vWj/YFuZgdQ5vWj.glb

The error is as follows:
Traceback (most recent call last):
File "src/nodes/habitat_env_node.py", line 709, in
main()
File "src/nodes/habitat_env_node.py", line 705, in main
env_node.simulate()
File "src/nodes/habitat_env_node.py", line 645, in simulate
self.publish_and_step_for_roam()
File "src/nodes/habitat_env_node.py", line 597, in publish_and_step_for_roam
self.step()
File "src/nodes/habitat_env_node.py", line 525, in step
self.env.set_agent_velocities(self.linear_vel, self.angular_vel)
File "/home/soon/catkin_ws/src/ros_x_habitat/src/envs/habitat_rlenv.py", line 154, in set_agent_velocities
self._env.set_agent_velocities(linear_vel, angular_vel)
File "/home/soon/catkin_ws/src/ros_x_habitat/src/envs/physics_env.py", line 195, in set_agent_velocities
vel_control.linear_velocity = linear_vel
TypeError: (): incompatible function arguments. The following argument types are supported:
1. (self: habitat_sim._ext.habitat_sim_bindings.VelocityControl, arg0: _magnum.Vector3) -> None

Invoked with: <habitat_sim._ext.habitat_sim_bindings.VelocityControl object at 0x7f81402d0fb0>, None

May I ask if there is any solution? Thank you

Always 2t7WUuJeko7 scene

I try to use roam to navigate a ROS agent in habitat sim scene. The code I write is below:

python src/scripts/roam_with_joy.py
--hab-env-config-path configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml
--episode-id 1007
--scene-id data/scene_datasets/mp3d/EDJbREhghzL/EDJbREhghzL.glb
--video-frame-period 60

However, it still load 2t7WUuJeko7 scene without changing anything. Does anyone met with this issue?

Some questions for Navigating Habitat Agent in Gazebo

After I installed habitat sim and habitat lab according to the instructions and ran the relevant code in the title, the navigation route is shown below. It can be seen that the navigation performance is relatively poor. How did you conduct the relevant experiments?Thank you!
7ce3844f-0237-4e1e-9ff5-b6a01b3ddd92-21530901

run roslaunch launch/move_base.launch error

the RobotModel status of Rviz is error:
URDF: parameter [robot_description] does not exist and was not found by searchparam()

it look like there exist some problem of loading RobotModel

Navigating ROS Agent in Habitat Sim

when I ran step 5, it just stuck to:
INFO env making sure agent is subscribed to sensor topics

and when I ran:
roslaunch launch/rtabmap_mapping.launch
it just reports:
/rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set.

/rgbd_sync: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set.

how to solve it? thanks

TypeError: (): incompatible function arguments. The following argument types are supported:

when I try Navigating ROS Agent in Habitat Sim,Some issues arise:
The command is as follows:
python src/scripts/roam_with_joy.py
--hab-env-config-path configs/roam_configs/pointnav_rgbd_roam_mp3d_test_scenes.yaml
--scene-id data/scene_datasets/YFuZgdQ5vWj/YFuZgdQ5vWj.glb

The error is as follows:
Traceback (most recent call last):
File "src/nodes/habitat_env_node.py", line 709, in
main()
File "src/nodes/habitat_env_node.py", line 705, in main
env_node.simulate()
File "src/nodes/habitat_env_node.py", line 645, in simulate
self.publish_and_step_for_roam()
File "src/nodes/habitat_env_node.py", line 597, in publish_and_step_for_roam
self.step()
File "src/nodes/habitat_env_node.py", line 525, in step
self.env.set_agent_velocities(self.linear_vel, self.angular_vel)
File "/home/soon/catkin_ws/src/ros_x_habitat/src/envs/habitat_rlenv.py", line 154, in set_agent_velocities
self._env.set_agent_velocities(linear_vel, angular_vel)
File "/home/soon/catkin_ws/src/ros_x_habitat/src/envs/physics_env.py", line 195, in set_agent_velocities
vel_control.linear_velocity = linear_vel
TypeError: (): incompatible function arguments. The following argument types are supported:

  1. (self: habitat_sim._ext.habitat_sim_bindings.VelocityControl, arg0: _magnum.Vector3) -> None

Invoked with: <habitat_sim._ext.habitat_sim_bindings.VelocityControl object at 0x7f81402d0fb0>, None

May I ask if there is any solution? Thank you

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.