-
Notifications
You must be signed in to change notification settings - Fork 1
Robot First Interactions
Authors: ancient-sentinel, anguyen7-99, chomuth, williamross165
During my preliminary time with the robot, I worked mostly in choregraphe to build familiarity with the bot before trying more complex coding blocks. I was able to connect to the bot by connecting the ethernet cable to the bot, getting its IP address, then typing that into the choregraphe connections tab. However, this can also be done using a python command from a third party IDE which is what I will be doing in the future. After this, I ran some premade blocks on the bot along with some of the simple API commands using the python blocks in choregraphe. I was not able to get past some of the basic commands which included diagnostics, speech, and basic movements of the bot and its joints.
Went in to work with the robot on Monday 11/09. One thing to note is I emailed Adham before going in, he never emailed me back so I did not get on the list of approved people to work with the robot. Alternatively, the CS desk lady had me go get Bill so I could get approval to see the robot, so anyone after me may have to do this as well. It seems going through Bill to get the robot will be the most effective way. He also has the ability to allow us to get it at any time apparently as that is what the current Social Robotics Senior Design group does. I know one of the guys in that group and so I got some guidance, and will continue to get guidance, on this whole project/robot from him. Next, once I got the robot, I had difficulties connecting so I will summarize the problems and solutions I had to use.
Problems:
- You can only connect with an ethernet cable.
- The robot itself has connection issues.
- The command line tools did not work.
Solutions:
- Bring a computer with an ethernet port or a dongle. Alternatively, Bill has a linux computer with an ethernet port and the required software. I currently have that computer because I was not able to return it to him, but we should be able to coordinate accordingly.
- The robots are numbered on each box. Robot 1 seems to have connection issues, while robot 2 worked for me. So I would highly recommend only using robot 2.
- Use choreographe and then try a different tool after if you have time. Simple drag and drop interface, I don't know all it is capable of but should work for an intro.
Side Notes: All in all, it seems like connecting to the robot will be the most difficult part. Even when connected, the software you run can take time to actually have an effect on the robot, so be patient. If it appears not to be working, some things you can do are: hold the center button for ~3 seconds. It will make a sound and go into crouch position. My understanding is that this is a "soft" reboot. Going further, you can hold it for ~10 seconds and it will completely shut off. Hold on to the robot while doing this as it will fall over immediately! This is a "hard" reset. You then just wait a few seconds and press the middle the middle button again to turn it back on. This can potentially help, but I still need to figure out a consistent approach to its connection. It appears the current Senior Design team working on this has the same issues as well.
Best of luck,
Will
Edit: I worked with the current senior design team to get some more insight on the NAO. Apparently, robot 1 works now and robot 2 has some issues itself. So, I would recommend trying robot 1 first and robot 2 if robot 1 is not working. Apparently, they need firmware updates from Bill or their connections stop working for some unknown reason.
I worked on the robot yesterday at 11/11. I played with the Robot 2 which has better connectivity that Will mentioned. While working on the robot, it still needs an ethernet cord to connect to the robot. I could not find any other ways to have the robot perform it's action without an ethernet cord. I ran Choreographe to program the robot to walk,sit,stand, and speak. Choreographe has code blocks for certain actions the robot can do like sitting,standing up, walking,etc. For the robot to speak, I embedded a python code block. The code blocks in Choreographe allows you to connect to each other based on how you want to the robot to execute some actions. Also, in Choreographe, I was able to access the robot's camera to show it's surroundings.
I worked with the robot on Saturday 11/14, during which I was able to successfully make the robot walk around and speak using only the Python SDK (no Choreographe) as well as connect to the robot using wifi.
Prior to my session, I got the NAO Python SDK installed on my Mac. While running Python in Terminal, I was able to successfully import the naoqi module. However, when I tried to create a PyCharm project using the same interpreter, my imports failed in both the PyCharm Python Console and also when I just ran Python directly in Terminal again afterwards. I fixed this by moving the NAO Python SDK to a new location and resetting all of the necessary environment variables. The instructions for how I installed the SDK on my Mac are available here.
Once I got the SDK import working in Terminal again, I decided to just move forward using that without an IDE. I downloaded the Robot Settings application from the NAO website and used that to connect locally to the robot using an ethernet cable. From there, I connected the robot to the UCCS Guest Wifi network first, and on later tries, to a Wifi Hotspot on my phone. Using the wireless connection and not the local ethernet connection, I used the ALSpeechToText and ALMotion modules to make the robot speak and walk around. Unfortunately, the moment I disconnected the ethernet cable from the robot it also automatically disconnected from whatever wifi network it was connected to as well. After some research, I believe this can be fixed by logging into the robot's locally hosted website (using the SoftBank account it is registered under) and configuring it to connect to a particular wifi network on startup. However, I was unable to do so since I did not have access to those credentials. A tutorial based on the steps I took for doing all of the above is available here
After wrapping up my session and heading home, I decided to try setting up PyCharm again. This time, I was able to successfully use the configured interpreter and import the SDK. The steps I took to setup PyCharm are available here.