Quick-Start
===========

Once you are connected to the B1 via LAN or 5G and have completed :doc:`Pre-requisite System <dependency>` section
you can begin operating the B1.

B1 High-level Driver
--------------------

In high level mode the robot can walk. To start the driver please run:

.. code:: bash

    sudo su
    source ~/catkin_ws/devel/setup.bash
    roslaunch b1_base base.launch
   
B1 Visualization
----------------

To launch the b1_viz:

.. code:: bash

   roslaunch b1_viz view_robot.launch


Quick-Start Teleop
------------------

To tele-operate:

.. code-block:: bash

   rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/b1/cmd_vel

.. Quick-Start Autonomous Navigation
.. ---------------------------------

.. A pre-configured B1 can start its navigation via the following commands:



..    Note that the current navigation utilizes unitrees innate controller and it does not
..    currently perform terrain adaptibility. For that low-level-mode is required which is
..    under development.


.. 1. Launch High-level driver

.. .. code-block:: bash

..    sudo su  
..    source catkin_ws/devel/setup.bash
..    roslaunch qre_ros high_level_mode.launch

.. 2. Launch qre driver

.. .. code-block:: bash

..    roslaunch qre_driver qre_base_driver.launch

.. This launches the robot state publisher, joint state publisher, IMU publisher, and Odom publisher.  
.. Note: The odom requires a visual odometry topic to work which we generally provide with the ZED2 camera.
.. Incase you need to perform odometry calculation with another camera `VINS_Fusion <https://github.com/HKUST-Aerial-Robotics/VINS-Fusion>`__ 
.. is a good software to use.

.. 3. Launch ouster driver

.. .. code-block:: bash

..    roslaunch mbs_ouster ouster.launch

.. 4. Launch navigation driver

.. .. code-block:: bash

..    roslaunch mbs_navigation odom_navigation.launch

.. Now it is possible to give the robot navigation goals via movebase.

.. 5. Launch visualizer

.. .. code-block:: bash

..    roslaunch qre_viz viz.launch

.. You can now add point clouds and the raw_rgb_image to view the streamed data. 
  