Both Grant and Lee underestimated each other--at first. They each thought the other built their reputations on poor opposition. When they finally saw each other in action up close, they gained appreciation for each other's acumen.
Grant misinterpreted what had happened at North Anna. When he saw the confederates didn't attack, he thought it must have been because the men were completely demoralized. He didn't realize it was because Lee was sick. Since he wasn't present in Lee's tent, it's reasonable for him to have concluded a demoralization of the confederate army instead of Lee being sick. After all, Lee still had corps commanders who in theory would be able to manage an attack. Little did Grant know, because he wasn't privy to that knowledge, that Lee didn't trust his corps commanders to be able to manage that attack.
Because of that misinterpretation, he felt attacking at Cold Harbor would succeed. Based on what he knew at the time, it was a reasonable assumption. The problem was that Meade and his corps commanders failed completely in their responsibility to plan the attack, coordinate the attack, and to conduct preattack reconnaissance. Grant told Meade that as soon as it was clear there was nothing to be gained to halt all attacks. Meade didn't do that, and finally Grant called a halt to the whole thing. What Grant ordered was an assault to break the confederate line. He didn't order the type of assault or any of the tactical details other than when to break it off. Meade was in command on the field all day at Cold Harbor. If we look at the battle in detail, it's a failure of Meade's, though Grant did mistakenly believe the confederates were demoralized and would break easily.