User Tools

Site Tools


avatar_furo_getting_started

This is an old revision of the document!


Hardware System

Block Diagram

(1)- Current Furo system relies on NVDIA Jetson NANO to operate (GPIO-pins configuration)

(2)- Furo is equipped with TWO (2) high torque motors for the mobility. Both of the motors have their own encoder.

(3)- These two high torque motors is connected to a motor controller, RoboClaw(has two channels)

(4)- Furo's head is also connected to another type of motor controller, MD10C, that only has 1 channel. There are a total of 3 MD10C, that responsible for roll, pitch, yaw.

(5)- DC-DC converter: Reduce noise from the 24V battery to other electrical components. Essentially, a DC-DC converter is in between the power supply and modules

(6)- 4 terminal blocks & 2 relay switches(switches t hat open and close circuits. Essentially, relays control one electrical circuit by opening and closing contacts in another circuit)


NVIDIA Jetson Nano

Configuring GPIO pins

NVDIA Jetson Nano has a 40-pin expansion header. Many of the pins can be used either as GPIO(General Purpose I/O) or as “special function I/O” such as I2C, I2S. In order to enable desired functions of pins, certain configurations need to be made. Furo is currently using two PWM pins (32,33), and the configuration was made by the following direction:

Enter the following command on the terminal.

   $ sudo /opt/nvidia/jetson-io/jetson-io.py

The above command will display the main screen. Click on “Configure Jetson 40pin Header”.



The expansion header configuration screen displays a list of special functions that the selected header supports. Currently, pwm0 and pwm2 are enabled in Furo.



You can find further detailed information regarding configuring expansion headers from the site below:
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/hw_setup_jetson_io.html#


Hardware Parts

Software

*Script Explanation/Example* *IMPORTANT: roscore must initialized first*

Step 1: roscore –> Roscore is nessessary for nodes to establish communication with each other. Rosmaster provides the naming and registration services to the nodes

Step 2:rosrun joy joy_node –> This script convert joy stick value to digital value; thus we can use to program

Step 3: rosrun learning_joy furo –> This script is a topic that is both a publisher as well as subscriber at the same time. Obtaining value from joy stick, converting it to a float data type, and passes on to the motor controller.

Step 4: roslaunch roboclaw_node roboclaw.launch –> This script is use to control the wheel of Furo

Step 5: rosrun head_motor finalheadmotor.py –> This Script grant access to Furo's head mobility.

Step 6: rosrun facedetect findface_publisher.py –>This Script grant access to Furo's head camera and track operator face

Step 7: rosrun head_motor face_tracks.py –> This Script allows Furo to mimics the operator's head movements.

avatar_furo_getting_started.1646715554.txt.gz · Last modified: 2022/03/07 20:59 by glee