turtlebot / turtlebot4_simulator

TurtleBot 4 Simulator packages
Apache License 2.0
68 stars 41 forks source link

Rplidar messages are getting dropped and lidar range while visualising in gazebo is small #20

Closed Srimathi-tw closed 1 year ago

Srimathi-tw commented 2 years ago

Please provide the following information:

On visualizing lidar in gazebo below is the range covered image

To Reproduce

  1. Run ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true slam:=sync
  2. Try driving the bot https://turtlebot.github.io/turtlebot4-user-manual/tutorials/driving.html by following the manual Slam map is not generated properly as obstacles are not detected

Logs for reference

[planner_server-4] [INFO] [1663570054.867082422] [global_costmap.global_costmap_rclcpp_node]: Message Filter dropping message: frame 'turtlebot4/rplidar_link/rplidar' at time 1.184 for reason 'the timestamp on the message is earlier than all the data in the transform cache' [sync_slam_toolbox_node-2] [INFO] [1663570054.902871461] [slam_toolbox]: Message Filter dropping message: frame 'turtlebot4/rplidar_link/rplidar' at time 1.216 for reason 'discarding message because the queue is full'

roni-kreinin commented 2 years ago

@Srimathi-tw have you made any modifications to the source code? I have not been able to reproduce this issue.

For reference here is what my simulation looks like when I launch it the same way:

image

Srimathi-tw commented 2 years ago

@roni-kreinin
1) We are running in quadro t1000 graphics card machine(info attached). Is there any minimum requirement on the same? image (7)

2) We are currently using ignition gazebo edifice version, could you please tell us which version you are using?

roni-kreinin commented 2 years ago

There aren't any specific minimum requirements but generally a PC with an i5 and dedicated GPU should work fine.

Also I am using Edifice as well. Fortress support will be coming with the Humble update.

Srimathi-tw commented 2 years ago

Installing using Binary We tried installing using binary still facing the same issue. Building from source While building from source we are facing an issue while doing colcon build as there is incompatibility between irobot_create_messages and turtlebot4 , so we changed our tag of irobot_create_messages to 2.0.0 tag and the build compiled successfully. Then also the issue with lidar persists. Could you please try with latest version build?
Also Can you please share your rplidar properties @roni-kreinin

roni-kreinin commented 2 years ago

I am using the default RPLIDAR description.

As for irobot_create_msgs, you will likely want to use the 1.2.4 tag, or the galactic branch. 2.0.0 and onwards is the Humble build, and the main branch also targets Humble.

Can you try running the simulation without SLAM and check in RVIZ that the lidar data looks correct? i.e. ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true

If it does not look correct, do you have another PC you could test the simulation on? Or can you try to install the simulation on a VM?

Srimathi-tw commented 2 years ago

@roni-kreinin We tried in 3 different systems one with dedicated graphics card and other 2 without but the issue persisted in all system. We also tried running via docker but it was the same case

So as a work around we tried increasing the vertical values so our current lidar ranges look like

 <gazebo reference="${name}_link">
    <xacro:ray_sensor sensor_name="${name}" gazebo="${gazebo}" 
                  update_rate="62.0" visualize="1" 
                  h_samples="640" h_res="1.0" h_min_angle="${-pi}" h_max_angle="${pi}" 
                  r_min="0.164" r_max="12.0" r_res="0.01"  v_samples="16" v_res="1.0" v_min_angle="-0.1" v_max_angle="0.1" >
                  <plugin name="dummy" filename="dummyfile"></plugin>
    </xacro:ray_sensor>
    <xacro:material_darkgray/>
  </gazebo>

image

but it works like a 3D lidar

roni-kreinin commented 2 years ago

Can you try running the standard turtlebot4 and see if you get the same issue?

Srimathi-tw commented 2 years ago

@roni-kreinin yes we tried with standard and the issue persisted

roni-kreinin commented 2 years ago

I have tested this again in a VM and still cannot reproduce your issue.

image

Can you detail the installation steps that you took?

Srimathi-tw commented 2 years ago

Installation steps we followed while trying installation via binary

  1. Installed ros2 galactic by following https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html#additional-rmw-implementations-optional
  2. Dev tools
    sudo apt install -y \
    python3-colcon-common-extensions \
    python3-rosdep \
    python3-vcstool
  3. Installed edifice via
sudo apt-get update && sudo apt-get install wget
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update && sudo apt-get install ignition-edifice
  1. Debian installation
    sudo apt update
    sudo apt install ros-galactic-turtlebot4-simulator ros-galactic-irobot-create-nodes

2 to 4 reference https://turtlebot.github.io/turtlebot4-user-manual/software/turtlebot4_packages.html#installation-3

@roni-kreinin for your reference

Srimathi-tw commented 2 years ago

@roni-kreinin were you able to reproduce the issue? . After I changed the values to

  <gazebo reference="${name}_link">
    <xacro:ray_sensor sensor_name="${name}" gazebo="${gazebo}" 
                  update_rate="62.0" visualize="1" 
                  h_samples="640" h_res="1.0" h_min_angle="${-pi}" h_max_angle="${pi}" 
                  r_min="0.164" r_max="12.0" r_res="0.01"  v_samples="16" v_res="1.0" v_min_angle="-0.001" v_max_angle="-0.001" >
                  <plugin name="dummy" filename="dummyfile"></plugin>
    </xacro:ray_sensor>
    <xacro:material_darkgray/>
  </gazebo>

in rplidar.urdf.xacro it is working fine as a 2d lidar

roni-kreinin commented 2 years ago

I tested this in a VM too and was not able to reproduce the issue there. The default vertical values are v_samples:=1 v_res:=1 v_min_angle:=0 v_max_angle:=0 so its strange that your change fixed it.

ncnynl commented 2 years ago

I tested turtlebot4 to build a map, and I also have this problem. I cannot get the activation data, and the laser line is not displayed on the ignition interface. Does this definitely require the GPU to obtain the data correctly, if the CPU cannot be used? @roni-kreinin

ncnynl commented 2 years ago

I installed turtlebot4 simulator on nuc, there is no GPU support, the installation is all right, but open ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true The default scan topic output data is 0, also on ingition There is no laser like the one in your picture. @roni-kreinin

roni-kreinin commented 2 years ago

@ncnynl Ignition Edifice only supports GPU rays and not CPU rays. As a result, a GPU is required to properly render the lidar and IR sensors. I am hoping that CPU rays will be supported in Ignition Fortress as we update to Humble/Fortress for TTB4.

ncnynl commented 2 years ago

@roni-kreinin I found your previous reply, https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=%3Crender_engine%3Eogre%3C/render_engine% 3E I found that if ogre2 is used in the model, both the camera and the radar can obtain data normally, and the radar data can be obtained even if the CPU is used

The effect is like this tutorial I wrote https://www.ncnynl.com/archives/202210/5587.html

roni-kreinin commented 2 years ago

@ncnynl Are you able to get decent performance with ogre2? From my testing I would get significantly worse performance with the camera on ogre2, which is why I set it to ogre.

ncnynl commented 2 years ago

At present, we can't use ogre normally, only ogre2 can, but there is no obvious difference in performance. At present, the speed of simulation movement is relatively slow, is there any way to change the speed, or it will take time to complete a map or navigation It is relatively long. The speed is the same whether it is orge or ogre2. It may be related to the speed limit of turtlebot4 itself. I want to adjust it to 2 m/s under simulation, so that it will be more convenient to test. @roni-kreinin

ncnynl commented 2 years ago

At present, I want to install turtlebot4_simulator on another nuc and virtual machine. I found that the same installation process, using orge2 will not work, and there will be a crash. @roni-kreinin

[ign gazebo-1] ign gazebo server: /var/lib/jenkins/workspace/ogre-2.1-debbuilder/repo/RenderSystems/GL3Plus/src/GLSL/OgreGLSLProgramManager.cpp:623: void Ogre::GLSLProgramManager::extractUniformsFromProgram(GLuint, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, Ogre::GLUniformReferenceList&, Ogre::GLAtomicCounterReferenceList&, Ogre::GLUniformBufferList&, Ogre::SharedParamsBufferMap&, Ogre::GLCounterBufferList&): Assertion `size_t (arraySize) == newGLUniformReference.mConstantDef->arraySize && "GL doesn't agree with our array size!"' failed.
[ign gazebo-1] Stack trace (most recent call last) in thread 11231:
[ign gazebo-1] #31   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in 
[ign gazebo-1] #30   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddcb6c132, in clone
[ign gazebo-1] #29   Object "/lib/x86_64-linux-gnu/libpthread.so.0", at 0x7faddca30608, in 
[ign gazebo-1] #28   Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fadd88436b3, in 
[ign gazebo-1] #27   Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-sensors-system.so", at 0x7fada84c9d87, in ignition::gazebo::v5::systems::SensorsPrivate::RenderThread()
[ign gazebo-1] #26   Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-sensors-system.so", at 0x7fada84c976e, in ignition::gazebo::v5::systems::SensorsPrivate::RunOnce()
[ign gazebo-1] #25   Object "/lib/x86_64-linux-gnu/libignition-sensors5.so.5", at 0x7fada8271c2e, in ignition::sensors::v5::Manager::RunOnce(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&, bool)
[ign gazebo-1] #24   Object "/lib/x86_64-linux-gnu/libignition-sensors5.so.5", at 0x7fada8286ebd, in ignition::sensors::v5::Sensor::Update(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&, bool)
[ign gazebo-1] #23   Object "/usr/lib/x86_64-linux-gnu/libignition-sensors5-rgbd_camera.so", at 0x7fad29b2cc05, in ignition::sensors::v5::RgbdCameraSensor::Update(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&)
[ign gazebo-1] #22   Object "/lib/x86_64-linux-gnu/libignition-sensors5-rendering.so.5", at 0x7fada82b0845, in ignition::sensors::v5::RenderingSensor::Render()
[ign gazebo-1] #21   Object "/usr/lib/x86_64-linux-gnu/ign-rendering-5/engine-plugins/libignition-rendering-ogre2.so", at 0x7fad876af8ff, in ignition::rendering::v5::Ogre2DepthCamera::Render()
[ign gazebo-1] #20   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8620d74b, in Ogre::Root::renderOneFrame()
[ign gazebo-1] #19   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8620d5d8, in Ogre::Root::_updateAllRenderTargets()
[ign gazebo-1] #18   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8631c6ad, in Ogre::CompositorManager2::_updateImplementation(Ogre::SceneManagerEnumerator&, Ogre::HlmsManager*)
[ign gazebo-1] #17   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad863376e3, in Ogre::CompositorWorkspace::_update()
[ign gazebo-1] #16   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8632221e, in Ogre::CompositorNode::_update(Ogre::Camera const*, Ogre::SceneManager*)
[ign gazebo-1] #15   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8634a9c7, in Ogre::CompositorPassScene::execute(Ogre::Camera const*)
[ign gazebo-1] #14   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861ed57e, in Ogre::RenderTarget::_updateViewportRenderPhase02(Ogre::Viewport*, Ogre::Camera*, Ogre::Camera const*, unsigned char, unsigned char, bool)
[ign gazebo-1] #13   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad860371e9, in Ogre::Camera::_renderScenePhase02(Ogre::Camera const*, Ogre::Viewport*, unsigned char, unsigned char, bool)
[ign gazebo-1] #12   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8621b4ae, in Ogre::SceneManager::_renderPhase02(Ogre::Camera*, Ogre::Camera const*, Ogre::Viewport*, unsigned char, unsigned char, bool)
[ign gazebo-1] #11   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861d3848, in Ogre::RenderQueue::render(Ogre::RenderSystem*, unsigned char, unsigned char, bool, bool)
[ign gazebo-1] #10   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861d13d5, in Ogre::RenderQueue::renderGL3(bool, bool, Ogre::HlmsCache*, Ogre::RenderQueue::RenderQueueGroup const&, Ogre::IndirectBufferPacked*, unsigned char*, unsigned char*)
[ign gazebo-1] #9    Object "/lib/x86_64-linux-gnu/libOgreHlmsPbs.so.2.1.0", at 0x7fada80c5f92, in Ogre::HlmsPbs::createShaderCacheEntry(unsigned int, Ogre::HlmsCache const&, unsigned int, Ogre::QueuedRenderable const&)
[ign gazebo-1] #8    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad8466f17c, in Ogre::GL3PlusRenderSystem::_setPipelineStateObject(Ogre::HlmsPso const*)
[ign gazebo-1] #7    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84628cb0, in Ogre::GLSLMonolithicProgramManager::getActiveMonolithicProgram()
[ign gazebo-1] #6    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84626e3f, in Ogre::GLSLMonolithicProgram::activate()
[ign gazebo-1] #5    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84626da8, in Ogre::GLSLMonolithicProgram::buildGLUniformReferences()
[ign gazebo-1] #4    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad846326d9, in Ogre::GLSLProgramManager::extractUniformsFromProgram(unsigned int, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::vector<Ogre::GLUniformReference, Ogre::STLAllocator<Ogre::GLUniformReference, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::GLAtomicCounterReference, Ogre::STLAllocator<Ogre::GLAtomicCounterReference, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::v1::HardwareUniformBufferSharedPtr, Ogre::STLAllocator<Ogre::v1::HardwareUniformBufferSharedPtr, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::map<Ogre::SharedPtr<Ogre::GpuSharedParameters>, Ogre::v1::HardwareUniformBufferSharedPtr, std::less<Ogre::SharedPtr<Ogre::GpuSharedParameters> >, Ogre::STLAllocator<std::pair<Ogre::SharedPtr<Ogre::GpuSharedParameters> const, Ogre::v1::HardwareUniformBufferSharedPtr>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::v1::HardwareCounterBufferSharedPtr, Ogre::STLAllocator<Ogre::v1::HardwareCounterBufferSharedPtr, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&)
[ign gazebo-1] #3    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca80fd5, in __assert_fail
[ign gazebo-1] #2    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca6f728, in 
[ign gazebo-1] #1    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca6f858, in abort
[ign gazebo-1] #0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca9000b, in gsignal
[ign gazebo-1] Aborted (Signal sent by tkill() 11153 1000)
[ign gazebo-1] Stack trace (most recent call last):
[ign gazebo-1] #19   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in 
[ign gazebo-1] #18   Object "ign gazebo gui", at 0x55a2da7231cd, in _start
[ign gazebo-1] #17   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca71082, in __libc_start_main
[ign gazebo-1] #16   Object "ign gazebo gui", at 0x55a2da72317e, in 
[ign gazebo-1] #15   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcced45d, in ruby_run_node
[ign gazebo-1] #14   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcce85f0, in 
[ign gazebo-1] #13   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce57cf1, in rb_vm_exec
[ign gazebo-1] #12   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce515e0, in 
[ign gazebo-1] #11   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce40805, in 
[ign gazebo-1] #10   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce5a2da, in 
[ign gazebo-1] #9    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce4d4b4, in 
[ign gazebo-1] #8    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcdab3c7, in 
[ign gazebo-1] #7    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcced405, in ruby_stop
[ign gazebo-1] #6    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca93a5f, in exit
[ign gazebo-1] #5    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca938a6, in 
[ign gazebo-1] #4    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59b14cc, in 
[ign gazebo-1] #3    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59b12b1, in 
[ign gazebo-1] #2    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59e2ddc, in QQmlPropertyCache::~QQmlPropertyCache()
[ign gazebo-1] #1    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59e28e8, in QQmlPropertyCache::~QQmlPropertyCache()
[ign gazebo-1] #0    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd57bae30, in 
[ign gazebo-1] Segmentation fault (Address not mapped to object [0x7fad909c7460])
[INFO] [ign gazebo-1]: process has finished cleanly [pid 10701]
hilary-luo commented 1 year ago

This issue is being closed due to inactivity. If you are still experiencing the issue, feel free to reopen this ticket when you are ready to continue the troubleshooting process.

HyydenJakcz commented 1 year ago

@roni-kreinin I found your previous reply, https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=%3Crender_engine%3Eogre%3C/render_engine% 3E I found that if ogre2 is used in the model, both the camera and the radar can obtain data normally, and the radar data can be obtained even if the CPU is used

The effect is like this tutorial I wrote https://www.ncnynl.com/archives/202210/5587.html

@ncnynl thank you for your solution. I tried it as a last ditch effort and somehow worked to fix it. However, like @roni-kreinin said it is visibly affecting the performance of my simulation

hilary-luo commented 1 year ago

@HyydenJakcz if you have the freedom to, try upgrading to Humble, there have been a number of improvements made for the Humble version of the packages.

HyydenJakcz commented 1 year ago

My setup at the moment is already using Humble. However, I tried what @ncnynl mentioned as a last-ditch effort when I saw that it was not really distro-dependent.

Flamethr0wer commented 4 months ago

So the solution is to use Ogre2? What if I'm on a Raspberry Pi? Its GPU doesn't support OpenGL3.3 and Ogre2 demands it...

hylreg commented 2 weeks ago

我找到了你之前的回复,https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=%3Crender_engine%3Eogre%3C/render_engine% 3E 我发现如果模型中使用了 ogre2,摄像头和雷达都可以正常获取数据,即使使用 CPU 也可以获取雷达数据

效果就像我写的这个教程 https://www.ncnynl.com/archives/202210/5587.html

我找到了你之前的回复,https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=%3Crender_engine%3Eogre%3C/render_engine% 3E 我发现如果模型中使用了 ogre2,摄像头和雷达都可以正常获取数据,即使使用 CPU 也可以获取雷达数据

效果就像我写的这个教程 https://www.ncnynl.com/archives/202210/5587.html

ogre不是默认使用GPU吗,我电脑上是有GPU的,但是收不到雷达数据。使用ogre2后,使用cpu运算,能收到雷达数据。想问一下ogre是不是不支持在仿真中使用GPU,只能在真机上使用GPU?